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

编译器/解释器

开发平台:

Others

  1. #include <iostream>
  2. #include "antlr/AST.hpp"
  3. #include "CalcLexer.hpp"
  4. #include "CalcParser.hpp"
  5. #include "CalcTreeWalker.hpp"
  6. int main()
  7. {
  8. ANTLR_USING_NAMESPACE(std)
  9. ANTLR_USING_NAMESPACE(antlr)
  10. try {
  11. CalcLexer lexer(cin);
  12. lexer.setFilename("<stdin>");
  13. CalcParser parser(lexer);
  14. parser.setFilename("<stdin>");
  15. // Parse the input expression
  16. parser.expr();
  17. RefAST t = parser.getAST();
  18. // Print the resulting tree out in LISP notation
  19. cout << t->toStringTree() << endl;
  20. CalcTreeWalker walker;
  21. // Traverse the tree created by the parser
  22. float r = walker.expr(t);
  23. cout << "value is " << r << endl;
  24. } catch(exception& e) {
  25. cerr << "exception: " << e.what() << endl;
  26. }
  27. }