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

编译器/解释器

开发平台:

Others

  1. import java.io.*;
  2. import antlr.CommonAST;
  3. import antlr.collections.AST;
  4. import antlr.DumpASTVisitor;
  5. import antlr.RecognitionException;
  6. import antlr.TokenStreamException;
  7. class Calc {
  8. public static void main(String[] args) {
  9. try {
  10. CalcLexer lexer = new CalcLexer(new DataInputStream(System.in));
  11. lexer.setFilename("<stdin>");
  12. CalcParser parser = new CalcParser(lexer);
  13. parser.setFilename("<stdin>");
  14. // Parse the input expression
  15. parser.expr();
  16. CommonAST t = (CommonAST)parser.getAST();
  17. // Print the resulting tree out in LISP notation
  18. System.out.println(t.toStringTree());
  19. CalcTreeWalker walker = new CalcTreeWalker();
  20. // Traverse the tree created by the parser
  21. float r = walker.expr(t);
  22. System.out.println("value is "+r);
  23. }
  24. catch(TokenStreamException e) {
  25. System.err.println("exception: "+e);
  26. }
  27. catch(RecognitionException e) {
  28. System.err.println("exception: "+e);
  29. }
  30. }
  31. }