int main(int argc, char *argv[]) { if (argc < 1) return 0; ANTLR_USING_NAMESPACE(std); ANTLR_USING_NAMESPACE(antlr); ANTLR_USING_NAMESPACE(Asm); char *filename = argv[1]; if (!filename) exit(1); try { ifstream input(filename); AsmLexer lexer(input); TokenBuffer buffer(lexer); AsmParser parser(buffer); ASTFactory ast_factory; parser.initializeASTFactory(ast_factory); parser.setASTFactory(&ast_factory); parser.asmFile(); RefAST a = parser.getAST(); AsmTreeParser tree_parser; tree_parser.init(false, false, false); tree_parser.initializeASTFactory(ast_factory); tree_parser.setASTFactory(&ast_factory); tree_parser.asmFile(a); #if 0 cout << "List:" << endl; cout << a->toStringList() << endl; cout << "Tree:" << endl; cout << a->toStringTree() << endl; #endif } catch (ANTLRException& e) { cerr << "exception: " << e.getMessage() << endl; return 2; } catch (exception& e) { cerr << "exception: " << e.what() << endl; return 3; } return 0; }