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

编译器/解释器

开发平台:

Others

  1. import java.io.*;
  2. import antlr.collections.AST;
  3. import antlr.collections.impl.*;
  4. import antlr.debug.misc.*;
  5. import antlr.*;
  6. class Main {
  7.   // Define a selector that can switch from java to javadoc; make visible to lexers
  8.   static TokenStreamSelector selector = new TokenStreamSelector();
  9.   public static void main(String[] args) {
  10.     try {
  11.       // open a simple stream to the input
  12.       DataInputStream input = new DataInputStream(System.in);
  13.       // attach java lexer to the input stream, which also creates a shared input state object
  14.       DemoJavaLexer main = new DemoJavaLexer(input);
  15.       // create javadoc lexer; attach to same shared input state as java lexer
  16.       DemoJavaDocLexer doclexer = new DemoJavaDocLexer(main.getInputState());
  17.       // notify selector about various lexers; name them for convenient reference later
  18.       selector.addInputStream(main, "main");
  19.       selector.addInputStream(doclexer, "doclexer");
  20.       selector.select("main"); // start with main java lexer
  21.       // Create parser attached to selector
  22.       DemoJavaParser parser = new DemoJavaParser(selector);
  23.       // Pull in one or more int decls with optional javadoc
  24.       parser.input();
  25.       /*
  26.       // spin thru all tokens generated via the SELECTOR.
  27.       Token t;
  28.       while ( (t=selector.nextToken()).getType()!=main.EOF ) {
  29. System.out.println(t.toString());
  30.       }
  31.       */
  32.     }
  33.     catch(Exception e) {
  34.       System.err.println("exception: "+e);
  35.       e.printStackTrace(System.err);   // so we can get stack trace
  36.     }
  37.   }
  38. }