1 package fri.patterns.interpreter.parsergenerator.syntax.builder.examples; 2 3 import java.io.*; 4 import fri.patterns.interpreter.parsergenerator.*; 5 import fri.patterns.interpreter.parsergenerator.syntax.Syntax; 6 import fri.patterns.interpreter.parsergenerator.syntax.builder.SyntaxBuilder; 7 import fri.patterns.interpreter.parsergenerator.parsertables.LALRParserTables; 8 9 16 17 public class Example 18 { 19 public static void main(String [] args) { 20 try { 21 System.out.println("Input is: "+(args.length > 0 ? args[0] : "SyntaxBuilder.syntax")); 22 InputStreamReader in = args.length <= 0 23 ? new InputStreamReader(Example.class.getResourceAsStream("SyntaxBuilder.syntax")) 24 : new InputStreamReader(new FileInputStream(args[0])); 25 SyntaxBuilder builder = new SyntaxBuilder(in); 26 Syntax syntax = builder.getSyntax(); 27 System.out.println("Resolved syntax rules are: =============="); 28 System.out.println(syntax.toString()); 29 30 in = args.length <= 0 32 ? new InputStreamReader(Example.class.getResourceAsStream("SyntaxBuilder.syntax")) 33 : new InputStreamReader(new FileInputStream(args[0])); 34 Lexer lexer = builder.getLexer(); 35 lexer.setInput(in); 36 lexer.setDebug(true); 37 Syntax parserSyntax = builder.getParserSyntax(); 38 ParserTables parserTables = new LALRParserTables(parserSyntax); 39 Parser parser = new Parser(parserTables); 40 boolean ok = parser.parse(lexer); 41 if (ok == false) 42 throw new Exception ("Failed parsing syntax specification text!"); 43 else 44 System.out.println("SyntaxBuilder succeeded parsing its own syntax specification text!"); 45 } 46 catch (Exception e) { 47 e.printStackTrace(); 48 } 49 } 50 51 } 52 | Popular Tags |