summaryrefslogtreecommitdiff
path: root/ast2json
diff options
context:
space:
mode:
authorAlex Xu <alex_y_xu@yahoo.ca>2014-04-16 15:17:31 -0400
committerAlex Xu <alex_y_xu@yahoo.ca>2014-04-16 15:17:31 -0400
commite417662dce5cae2e95ef98ee38baa8f53a02b9d5 (patch)
treedce94fb8524dece7e3fcc677ec0cf908a6ec2a97 /ast2json
parent6a50d79523cf215001cdd55c74c040bd410775df (diff)
downloadhtml5ks-e417662dce5cae2e95ef98ee38baa8f53a02b9d5.tar.xz
html5ks-e417662dce5cae2e95ef98ee38baa8f53a02b9d5.zip
mbleh
Diffstat (limited to 'ast2json')
-rwxr-xr-xast2json/rpyc2json.py2
-rwxr-xr-xast2json/script2json.py2
-rwxr-xr-xast2json/settings2json.py19
3 files changed, 22 insertions, 1 deletions
diff --git a/ast2json/rpyc2json.py b/ast2json/rpyc2json.py
index b1dc592..7c8518b 100755
--- a/ast2json/rpyc2json.py
+++ b/ast2json/rpyc2json.py
@@ -79,6 +79,8 @@ def get_value(attr_value):
}
if isinstance(attr_value, renpy.ast.ArgumentInfo):
return list(map(lambda x: getattr(attr_value, x), ["arguments", "extrapos", "extrakw"]))
+ if isinstance(attr_value, renpy.ast.ParameterInfo):
+ return dict((name, getattr(attr_value, name)) for name in dir(attr_value) if not name.startswith('__'))
if isinstance(attr_value, renpy.atl.RawBlock):
return 'ATL not implemented'
diff --git a/ast2json/script2json.py b/ast2json/script2json.py
index 60be575..d5cafa2 100755
--- a/ast2json/script2json.py
+++ b/ast2json/script2json.py
@@ -44,7 +44,7 @@ def print_Return(stmt):
return [stmt['expression']]
def print_UserStatement(stmt):
- return [stmt['line']]
+ return [stmt['line'], stmt['parsed']]
def print_Init(stmt):
raise NotImplementedError()
diff --git a/ast2json/settings2json.py b/ast2json/settings2json.py
new file mode 100755
index 0000000..a72239d
--- /dev/null
+++ b/ast2json/settings2json.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+
+import json
+import sys
+
+def settings2json(ast):
+ ret = {}
+ if ast[0]['_type'] != 'Label':
+ raise TypeError('obj does not start with Label, wrong file?')
+ for label in ast:
+ if label['parameters'] is not None:
+ raise NotImplementedError()
+ ret[label['name']] = label['block']
+ return ret
+
+with open(sys.argv[1], 'r') as f:
+ output = settings2json(json.load(f))
+
+json.dump(output, open(sys.argv[2], 'w'), separators=(',', ':'))