1 2 #include <iostream> 3 4 #include "ExprLexer.hpp" 5 #include "ExprParser.hpp" 6 #include "antlr/AST.hpp" 7 #include "antlr/CommonAST.hpp" 8 main(int,char **)9int main( int, char** ) 10 { 11 ANTLR_USING_NAMESPACE(std) 12 ANTLR_USING_NAMESPACE(antlr) 13 try { 14 ASTFactory my_factory; 15 ExprLexer lexer(cin); 16 ExprParser parser(lexer); 17 18 parser.initializeASTFactory(my_factory); 19 parser.setASTFactory(&my_factory); 20 21 parser.expr(); 22 RefCommonAST ast = RefCommonAST(parser.getAST()); 23 24 if (ast) 25 cout << ast->toStringList() << endl; 26 else 27 cout << "null AST" << endl; 28 } 29 catch( ANTLRException& e ) 30 { 31 cerr << "exception: " << e.getMessage() << endl; 32 return -1; 33 } 34 catch( exception& e ) 35 { 36 cerr << "exception: " << e.what() << endl; 37 return -1; 38 } 39 return 0; 40 } 41 42