KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fri > patterns > interpreter > parsergenerator > semantics > examples > TreeBuilderExample


1 package fri.patterns.interpreter.parsergenerator.semantics.examples;
2
3 import java.io.*;
4 import fri.patterns.interpreter.parsergenerator.*;
5 import fri.patterns.interpreter.parsergenerator.lexer.*;
6 import fri.patterns.interpreter.parsergenerator.syntax.Syntax;
7 import fri.patterns.interpreter.parsergenerator.syntax.builder.*;
8 import fri.patterns.interpreter.parsergenerator.semantics.TreeBuilderSemantic;
9
10 /**
11     TreeBuilderSemantic example that shows the instance tree of
12     the EBNF file <i>syntax/builder/examples/SyntaxBuilder.syntax</i<.
13 */

14
15 public class TreeBuilderExample
16 {
17     /** Test output of SyntaxBuilder syntax tree. */
18     public static void main(String JavaDoc [] args) {
19         try {
20             Reader input = new InputStreamReader(Parser.class.getResourceAsStream("syntax/builder/examples/SyntaxBuilder.syntax"));
21             Syntax syntax = new Syntax(StandardLexerRules.lexerSyntax);
22             SyntaxSeparation separation = new SyntaxSeparation(syntax);
23             LexerBuilder builder = new LexerBuilder(separation.getLexerSyntax(), separation.getIgnoredSymbols());
24             Lexer lexer = builder.getLexer(input);
25             Parser p = new Parser(new SyntaxBuilderParserTables());
26             if (p.parse(lexer, new TreeBuilderSemantic())) {
27                 TreeBuilderSemantic.Node n = (TreeBuilderSemantic.Node)p.getResult();
28                 System.err.println("got result: "+n);
29                 System.out.println(n.toString(0));
30             }
31         }
32         catch (Exception JavaDoc e) {
33             e.printStackTrace();
34         }
35     }
36         
37 }
38
Popular Tags