示例#1
0
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()
示例#2
0

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())))
示例#3
0
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))