import sys sys.path.append('.') sys.setrecursionlimit(5000) from pymetaterp.util import simple_wrap_tree from pymetaterp import boot_tree, boot_grammar from pymetaterp.boot_compiled import to_python, match from pymetaterp import python_compiled, python_grammar import os grammar = boot_grammar.bootstrap + boot_grammar.extra t1 = list(simple_wrap_tree(boot_tree.tree)) t2 = match(t1, grammar) t3 = match(t2, grammar + boot_grammar.diff) pytree = match(t3, python_grammar.full_definition + python_grammar.extra) srctree = python_compiled.match( pytree, open(os.path.join("test", "python_ex.py")).read()) srctree.pprint()
class Global(object): pass g = Global() if __name__ == "__main__": output_stream = sys.stdout output_stream_pos = 0 pos_map = {} g.func_count = 0 g.last_value = "" g.nesting = 0 g.written = [] t1 = list(simple_wrap_tree(boot_tree.tree)) t2 = match(t1, boot_grammar.bootstrap + boot_grammar.extra + boot_grammar.diff) lang_tree = match(t2, grammar + boot_grammar.extra) header = "push: Generated_from_" + "_".join(sys.argv[1:]) + " print" print(header) output_stream_pos += len(header) for filename in sys.argv[1:]: write_suite(to_forth(simplify(parse(open(filename).read())))) open("pos_map.txt", "w").write("%s %s\n" % (len(sys.argv[1:]), " ".join(sys.argv[1:])) +\ "%s\n" % len(pos_map) +\ "\n".join(" ".join(map(str, (key[0],) + pos_map[key])) for key in sorted(pos_map.keys())))
import sys sys.path.append('.') sys.setrecursionlimit(5000) from pymetaterp.util import simple_wrap_tree from pymetaterp import boot_tree, boot_grammar from pymetaterp.boot_compiled import to_python, match t1 = list(simple_wrap_tree(boot_tree.tree)) grammar = boot_grammar.bootstrap + boot_grammar.extra t2 = match(t1, grammar) t3 = match(t2, grammar) assert(to_python(t2) == to_python(t3))