diff options
author | alon@honor <none@none> | 2010-09-09 23:22:10 -0700 |
---|---|---|
committer | alon@honor <none@none> | 2010-09-09 23:22:10 -0700 |
commit | a224d9f4cc00fd8a1cf8f4e6ea53cce29e4eb088 (patch) | |
tree | 95ad14bc89a1f561e721085bf099e71b177e5eb4 | |
parent | e337bf1f8a729861f9a1d054c08108e9cb1b156f (diff) |
Allow overriding compiler settings.js
-rwxr-xr-x | emscripten.py | 12 | ||||
-rw-r--r-- | src/parser.js | 18 |
2 files changed, 16 insertions, 14 deletions
diff --git a/emscripten.py b/emscripten.py index 3bbbb8c9..ce1bc48f 100755 --- a/emscripten.py +++ b/emscripten.py @@ -4,18 +4,16 @@ import os, sys, subprocess COMPILER = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'src', 'parser.js') -def emscripten(filename, output_filename, js_engine): +def emscripten(filename, js_engine, settings): + data = open(filename, 'r').read() cwd = os.getcwd() os.chdir(os.path.dirname(COMPILER)) - if output_filename is not None: - subprocess.Popen([js_engine] + [COMPILER], stdin=open(filename, 'r'), stdout=open(output_filename, 'w'), stderr=subprocess.STDOUT).communicate()[0] - else: - subprocess.Popen([js_engine] + [COMPILER], stdin=open(filename, 'r')).communicate()[0] + subprocess.Popen([js_engine, COMPILER], stdin=subprocess.PIPE).communicate(settings+'\n'+data)[0] os.chdir(cwd) if __name__ == '__main__':
if sys.argv.__len__() != 3: - print '''\nEmscripten usage: emscripten.py INFILE PATH-TO-JS-ENGINE\n''' + print '''\nEmscripten usage: emscripten.py INFILE PATH-TO-JS-ENGINE [SETTINGS]\n''' else: - emscripten(sys.argv[1], None, sys.argv[2]) + emscripten(sys.argv[1], sys.argv[2], sys.argv[3] if len(sys.argv) == 4 else "{}") diff --git a/src/parser.js b/src/parser.js index 6d74deff..aa91b60b 100644 --- a/src/parser.js +++ b/src/parser.js @@ -2488,8 +2488,17 @@ function JSify(data) { // return finalCombiner(substrate.solve()); } +//=============================== // Main +//=============================== +// Override settings +var settings = JSON.parse(readline()); +for (setting in settings) { + this[setting] = settings[setting]; +} + +// Read llvm var lines = []; var line; do { @@ -2499,11 +2508,6 @@ do { } while(true); var data = lines.join("\n"); -//print('zz prepared') -data = intertyper(data); -//print('zz intertyped') -data = analyzer(data); -//print('zz analyzed') -data = JSify(data); -print(data); +// Do it +print(JSify(analyzer(intertyper(data)))); |