mirror of
https://bitbucket.org/seefoe/dockerized-swg-src.git
synced 2026-07-14 00:01:36 -04:00
61 lines
1.6 KiB
Python
Executable File
61 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import codecs
|
|
import os
|
|
import sys
|
|
import mocha
|
|
|
|
from mocha.parser import MochaParser
|
|
from mocha.generator import JavaClassGenerator, JavaStaticClassGenerator
|
|
from mocha.model import FunctionDeclaration
|
|
|
|
def main():
|
|
sys.setrecursionlimit(5000)
|
|
|
|
ifilename, ofilename = mocha.parse_input(sys.argv[1:])
|
|
|
|
ibase = mocha.get_script_base(ifilename)
|
|
package_name = mocha.build_package_name(ifilename)
|
|
class_name = mocha.build_class_name(ifilename)
|
|
|
|
parser = MochaParser()
|
|
|
|
if ifilename[-9:] == "scriptlib":
|
|
generator = JavaStaticClassGenerator()
|
|
else:
|
|
generator = JavaClassGenerator()
|
|
|
|
ast = parser.parse_file(ifilename)
|
|
|
|
functions = dict()
|
|
|
|
#for inc in ast.includes:
|
|
# name = inc.name.value
|
|
# if len(name) >= 6 and name[:5] == "java.":
|
|
# continue
|
|
|
|
# fname = "%s/script/%s.scriptlib" % (ibase, name.replace(".", "/"))
|
|
|
|
# if not os.path.isfile(fname):
|
|
# continue
|
|
|
|
# alias = name.split(".")[-1]
|
|
# dast = parser.parse_file(fname)
|
|
|
|
# for stmt in dast.statements:
|
|
# if type(stmt) is FunctionDeclaration:
|
|
# func_name = "%s.%s" % (alias, stmt.name)
|
|
# functions[func_name] = {"return_type": stmt.return_type, "resizeable": True if "resizeable" in stmt.modifiers else False}
|
|
|
|
if ofilename is "":
|
|
print generator.generate(package_name, class_name, ast, functions)
|
|
else:
|
|
with open(ofilename, "w") as java_file:
|
|
java_file.write(generator.generate(package_name, class_name, ast, functions))
|
|
#with codecs.open(ofilename, "w", "utf-8") as java_file:
|
|
# java_file.write(generator.generate(package_name, class_name, ast, functions).decode("utf8"))
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|