summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlb_ii <lolbot_iichan@mail.ru>2020-07-12 16:10:05 +0300
committerlb_ii <lolbot_iichan@mail.ru>2020-07-12 18:16:40 +0300
commit01f0dbde28663d3a08d7cead348b53c1910df066 (patch)
tree2386af3b438d95a5c9ab7aa7af03aa93071c34e0
parent22d0b03e7824a2ec8e675923aff2053b69e020ac (diff)
downloadply-01f0dbde28663d3a08d7cead348b53c1910df066.tar.gz
GARDENSNAKE: Use Python 3 compile function
-rw-r--r--example/GardenSnake/GardenSnake.py18
1 files changed, 6 insertions, 12 deletions
diff --git a/example/GardenSnake/GardenSnake.py b/example/GardenSnake/GardenSnake.py
index 6e6f42a..a5d0938 100644
--- a/example/GardenSnake/GardenSnake.py
+++ b/example/GardenSnake/GardenSnake.py
@@ -705,26 +705,20 @@ class GardenSnakeParser(object):
###### Code generation ######
-from compiler import misc, syntax, pycodegen
-
-
class GardenSnakeCompiler(object):
def __init__(self):
self.parser = GardenSnakeParser()
- def compile(self, code, filename="<string>"):
+ def do_compile(self, code, filename="<string>"):
tree = self.parser.parse(code)
- # print tree
- misc.set_filename(filename, tree)
- syntax.check(tree)
- gen = pycodegen.ModuleCodeGenerator(tree)
- code = gen.getCode()
- return code
+ tree = ast.fix_missing_locations(tree)
+ # print(ast.dump(tree))
+ return compile(tree, filename, "exec")
####### Test code #######
-compile = GardenSnakeCompiler().compile
+do_compile = GardenSnakeCompiler().do_compile
code = r"""
@@ -769,7 +763,7 @@ print(t,a)
# Set up the GardenSnake run-time environment
-compiled_code = compile(code)
+compiled_code = do_compile(code)
exec(compiled_code, globals())
print("Done")