diff options
author | lb_ii <lolbot_iichan@mail.ru> | 2020-07-12 16:10:05 +0300 |
---|---|---|
committer | lb_ii <lolbot_iichan@mail.ru> | 2020-07-12 18:16:40 +0300 |
commit | 01f0dbde28663d3a08d7cead348b53c1910df066 (patch) | |
tree | 2386af3b438d95a5c9ab7aa7af03aa93071c34e0 | |
parent | 22d0b03e7824a2ec8e675923aff2053b69e020ac (diff) | |
download | ply-01f0dbde28663d3a08d7cead348b53c1910df066.tar.gz |
GARDENSNAKE: Use Python 3 compile function
-rw-r--r-- | example/GardenSnake/GardenSnake.py | 18 |
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") |