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)