solpl 2.3.5__tar.gz → 2.3.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {solpl-2.3.5/solpl.egg-info → solpl-2.3.7}/PKG-INFO +1 -1
- {solpl-2.3.5 → solpl-2.3.7}/interpreter/sol.py +7 -3
- {solpl-2.3.5 → solpl-2.3.7}/pyproject.toml +1 -1
- {solpl-2.3.5 → solpl-2.3.7/solpl.egg-info}/PKG-INFO +1 -1
- {solpl-2.3.5 → solpl-2.3.7}/LICENSE +0 -0
- {solpl-2.3.5 → solpl-2.3.7}/README.md +0 -0
- {solpl-2.3.5 → solpl-2.3.7}/setup.cfg +0 -0
- {solpl-2.3.5 → solpl-2.3.7}/solpl.egg-info/SOURCES.txt +0 -0
- {solpl-2.3.5 → solpl-2.3.7}/solpl.egg-info/dependency_links.txt +0 -0
- {solpl-2.3.5 → solpl-2.3.7}/solpl.egg-info/entry_points.txt +0 -0
- {solpl-2.3.5 → solpl-2.3.7}/solpl.egg-info/top_level.txt +0 -0
|
@@ -32,7 +32,8 @@ class SolInterpreter:
|
|
|
32
32
|
|
|
33
33
|
with open(filename, "r") as f:
|
|
34
34
|
code = f.read()
|
|
35
|
-
|
|
35
|
+
base_name = os.path.basename(filename)
|
|
36
|
+
module_name = base_name.replace(".sol", "")
|
|
36
37
|
lines = [l.strip() for l in code.split('\n') if l.strip()]
|
|
37
38
|
for pc, line in enumerate(lines):
|
|
38
39
|
if "(" in line and ")" in line and "main" not in line and "end" not in line and "->" not in line and ">>" not in line and "?" not in line and not line.startswith(("if ", "while ", "for ", "elseif", "else")):
|
|
@@ -44,7 +45,8 @@ class SolInterpreter:
|
|
|
44
45
|
|
|
45
46
|
def _compute(self, expr):
|
|
46
47
|
expr = str(expr).strip()
|
|
47
|
-
|
|
48
|
+
is_literal = (expr.startswith('"') and expr.endswith('"')) or (expr.startswith("'") and expr.endswith("'"))
|
|
49
|
+
if "+" in expr and not is_literal and any(c.isalpha() or c in ['"', "'"] for c in expr):
|
|
48
50
|
parts = expr.split("+")
|
|
49
51
|
result = ""
|
|
50
52
|
for p in parts:
|
|
@@ -147,7 +149,9 @@ class SolInterpreter:
|
|
|
147
149
|
def get_val(expr):
|
|
148
150
|
val = self._compute(expr.strip())
|
|
149
151
|
return val if val is not None else 0
|
|
150
|
-
|
|
152
|
+
if "==" in cond:
|
|
153
|
+
left, right = cond.split("==", 1)
|
|
154
|
+
return get_val(left) == get_val(right)
|
|
151
155
|
if "=" in cond:
|
|
152
156
|
left, right = cond.split("=")
|
|
153
157
|
return get_val(left) == get_val(right)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|