diff options
author | Alex Xu <alex_y_xu@yahoo.ca> | 2014-05-02 10:32:16 -0400 |
---|---|---|
committer | Alex Xu <alex_y_xu@yahoo.ca> | 2014-05-02 10:32:16 -0400 |
commit | 2e9bfa707b33f7e371088b66e75f4e76f90ebcee (patch) | |
tree | 08261187323f5ae2e72ce178acd5df5af1701f5e /ast2json/rpyc2json.py | |
parent | e417662dce5cae2e95ef98ee38baa8f53a02b9d5 (diff) | |
download | html5ks-2e9bfa707b33f7e371088b66e75f4e76f90ebcee.tar.xz html5ks-2e9bfa707b33f7e371088b66e75f4e76f90ebcee.zip |
new image system
Diffstat (limited to 'ast2json/rpyc2json.py')
-rwxr-xr-x | ast2json/rpyc2json.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ast2json/rpyc2json.py b/ast2json/rpyc2json.py index 7c8518b..ec4f4b8 100755 --- a/ast2json/rpyc2json.py +++ b/ast2json/rpyc2json.py @@ -66,16 +66,20 @@ def get_value(attr_value): return attr_value if isinstance(attr_value, (int, str, float, complex, bool)): return attr_value - if isinstance(attr_value, list) or isinstance(attr_value, tuple): + if isinstance(attr_value, (list, tuple)): return [get_value(x) for x in attr_value] if isinstance(attr_value, dict): return attr_value if isinstance(attr_value, renpy.ast.Node): return node2json(attr_value) + if isinstance(attr_value, (renpy.ast.Python, renpy.ast.EarlyPython)): + attr_value.code.mode = 'exec' + if isinstance(attr_value, (renpy.ast.Image, renpy.ast.Define)): + attr_value.code.mode = 'eval' if isinstance(attr_value, renpy.ast.PyCode): return { "source": attr_value.source, - "ast": ast2json.str2json(attr_value.source) + "ast": ast2json.str2json(attr_value.source, attr_value.mode) } if isinstance(attr_value, renpy.ast.ArgumentInfo): return list(map(lambda x: getattr(attr_value, x), ["arguments", "extrapos", "extrakw"])) |