示例#1
0
文件: scratch.py 项目: cheery/essence
from schema import analyzer
from schema.language import language

ndef = analyzer.normalize(language)

inv = analyzer.partial_inversion(ndef)



for key, argv in ndef.items():
    print key
    if argv:
        print '   ' + '\n   '.join(map(repr, argv))

print 'inversion'
print inv

for name, (nxt, in_list, cost) in analyzer.template_chains(inv, analyzer.String):
    if in_list:
        print "%12r[0] > [%r]" % (name, nxt)
    else:
        print "%12r[0] > %r" % (name, nxt)
示例#2
0
文件: main.py 项目: cheery/essence
}

script_directory = in_module('scripts')
for filename in os.listdir(script_directory):
    if not os.path.isdir(filename) and filename.endswith('.language'):
        name, ext = os.path.splitext(filename)
        path = os.path.join(script_directory, filename)
        known_languages[name] = lambda: load_file(path)

filename = sys.argv[1]

langtype = os.path.splitext(filename)[1][1:]
current_language = known_languages[langtype]()

syn = Synthetizer(current_language)
ndef = analyzer.normalize(current_language)
inv = analyzer.partial_inversion(ndef)

chains = analyzer.build_all_chains(ndef, inv)

for name, argv in ndef.items():
    print 'TDEF:', name, ', '.join(map(repr, argv))

for name, sources in inv.items():
    print "INV:", name, sources

if os.path.exists(filename):
    document = load_file(filename)
else:
    document = mkstruct(ndef, syn, current_language.name, [])
proxy.mkroot(None, document)