Example #1
0
precs = {'UMINUS': ['Exp', '-', 'Exp']}

parser = Parser(sm.productions, sm.terminal, sm.nonterminal, precs, precedence)

# print(sm.terminal)
t2p = {'id': '[a-zA-Z_]\w*', 'num': '\d+'}
# lexer = Lexer('node/test3.dm',sm.terminal,t2p)
lexer = Lexer('node/test6.dm', sm.terminal, t2p)
# lexer = Lexer('test2.dm',sm.terminal,t2p)
# print(list(lexer.lex()))
# for t in lexer.lex():
#     print(t)

# parser.generate()
# parser.dumpjson()
parser.loadjson()
# parser.htmlparse('test.html')
tokens = list(lexer.lex())
tree = parser.parse(tokens, sm.sdmap)  #, debug=True)
# typeCheck = TypeCheck(tree)
# typeCheck.init()
# typeCheck.accept()
# inter = Interperter(tree)
# inter.accept()
# Parser.printitems(sm.productions)
# cnt = Counter([p[0] for p in sm.productions])
# print(cnt)
past = AstPrintVisitor(tree)

past.accept()
# gast  = AstTraversalVisitor(tree)