Main.cpp
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. #include <iostream>
  2. #include "ExprLexer.hpp"
  3. #include "ExprParser.hpp"
  4. #include "antlr/AST.hpp"
  5. #include "antlr/CommonAST.hpp"
  6. int main()
  7. {
  8. ANTLR_USING_NAMESPACE(std)
  9. ANTLR_USING_NAMESPACE(antlr)
  10. try {
  11. ExprLexer lexer(cin);
  12. ExprParser parser(lexer);
  13. // set the type of tree node to create; this is default action
  14. // so it is unnecessary to do it here, but demos capability.
  15. parser.setASTNodeFactory(&CommonAST::factory);
  16. parser.expr();
  17. RefCommonAST ast = RefCommonAST(parser.getAST());
  18. // RefAST ast = parser.getAST();
  19. if (ast) {
  20. cout << ast->toStringList() << endl;
  21. } else {
  22. cout << "null AST" << endl;
  23. }
  24. } catch(exception& e) {
  25. cerr << "exception: " << e.what() << endl;
  26. }
  27. }