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 14 15 public class TreeBuilderExample 16 { 17 18 public static void main(String [] 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 e) { 33 e.printStackTrace(); 34 } 35 } 36 37 } 38 | Popular Tags |