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