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