summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlb_ii <lolbot_iichan@mail.ru>2020-07-12 17:05:30 +0300
committerlb_ii <lolbot_iichan@mail.ru>2020-07-12 18:16:28 +0300
commitc4a644cd87cf39054153810f1fe340091f12652d (patch)
treebd30c8643d3bfed69077fb8658ebb152e8250d16
parentcd171da8b0a2b14209a71c5f44d457aa5ec6a864 (diff)
downloadply-c4a644cd87cf39054153810f1fe340091f12652d.tar.gz
GARDENSNAKE: Fix ast - load & assignment of variables
-rw-r--r--example/GardenSnake/GardenSnake.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/example/GardenSnake/GardenSnake.py b/example/GardenSnake/GardenSnake.py
index 48ba539..6f9f6a6 100644
--- a/example/GardenSnake/GardenSnake.py
+++ b/example/GardenSnake/GardenSnake.py
@@ -369,16 +369,16 @@ def Assign(left, right):
names = []
if isinstance(left, ast.Name):
# Single assignment on left
- return ast.Assign([ast.AssName(left.name, 'OP_ASSIGN')], right)
+ return ast.Assign([ast.Name(left.id, ctx=ast.Store())], right)
elif isinstance(left, ast.Tuple):
# List of things - make sure they are Name nodes
names = []
- for child in left.getChildren():
+ for child in left.elts:
if not isinstance(child, ast.Name):
raise SyntaxError("that assignment not supported")
- names.append(child.name)
- ass_list = [ast.AssName(name, 'OP_ASSIGN') for name in names]
- return ast.Assign([ast.AssTuple(ass_list)], right)
+ names.append(child.id)
+ ass_list = [ast.Name(name, ctx=ast.Store()) for name in names]
+ return ast.Assign([ast.Tuple(ass_list, ctx=ast.Store())], right)
else:
raise SyntaxError("Can't do that yet")
@@ -603,7 +603,7 @@ def p_power(p):
def p_atom_name(p):
"""atom : NAME"""
- p[0] = ast.Name(p[1])
+ p[0] = ast.Name(p[1],ctx=ast.Load())
def p_atom_number(p):
@@ -642,7 +642,7 @@ def p_testlist(p):
p[0] = [p[1]]
# Convert into a tuple?
if isinstance(p[0], list):
- p[0] = ast.Tuple(p[0])
+ p[0] = ast.Tuple(p[0], ctx=ast.Load())
def p_testlist_multi(p):
@@ -761,6 +761,9 @@ print('this is decimal', 1/5)
print('BIG DECIMAL', 1.234567891234567e12345)
print('LITTE DECIMAL', 1.234567891234567e-12345)
+print(t,a)
+a,t = t,a
+print(t,a)
"""
# Set up the GardenSnake run-time environment