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

编译器/解释器

开发平台:

Others

  1. import java.io.*;
  2. import antlr.*;
  3. import antlr.collections.*;
  4. import antlr.debug.misc.*;
  5. class InstrMain {
  6.   /** Parser will query filter for information */
  7.   public static TokenStreamHiddenTokenFilter filter;
  8. public static void main(String[] args) {
  9.   InstrLexer lexer = new InstrLexer(new DataInputStream(System.in));
  10.   lexer.setTokenObjectClass("antlr.CommonHiddenStreamToken");
  11.   filter = new TokenStreamHiddenTokenFilter(lexer);
  12.   filter.hide(InstrParser.WS);
  13.   filter.hide(InstrParser.SL_COMMENT);
  14.   InstrParser parser = new InstrParser(filter);
  15.   parser.setASTNodeClass("antlr.CommonASTWithHiddenTokens");
  16.   try {
  17.     // Parse the input statements
  18.     parser.slist();
  19.   }
  20.   catch (IOException io) {
  21.     System.err.println("IOException while parsing");
  22.   }
  23.   catch(ParserException e) {
  24.     System.err.println("exception: "+e);
  25.   }
  26.   CommonASTWithHiddenTokens t =
  27.     (CommonASTWithHiddenTokens)parser.getAST();
  28. /* UNCOMMENT THIS TO SEE THE TREE STRUCTURE
  29.   ASTFactory factory = new ASTFactory();
  30.   AST r = factory.create(0,"AST ROOT");
  31.   r.setFirstChild(t);
  32.   ASTFrame frame = new ASTFrame("Preserve Whitespace Example AST", r);
  33.   frame.setVisible(true);
  34. */
  35.   InstrTreeWalker walker = new InstrTreeWalker();
  36.   try {
  37.     walker.slist(t);
  38.   }
  39.   catch(ParserException e) {
  40.     System.err.println("exception: "+e);
  41.   }
  42. }
  43. }