1 package fri.patterns.interpreter.parsergenerator.examples; 2 3 import java.io.*; 4 import fri.util.TimeStopper; 5 import fri.patterns.interpreter.parsergenerator.*; 6 import fri.patterns.interpreter.parsergenerator.builder.*; 7 import fri.patterns.interpreter.parsergenerator.semantics.PrintSemantic; 8 11 16 17 public class JavaParser 18 { 19 public static void main(String [] args) 20 throws Exception 21 { 22 if (args.length <= 0) { 23 System.err.println("SYNTAX: java "+JavaParser.class.getName()+" file.java [file.java ...]"); 24 System.err.println(" Example Java Parser"); 25 } 26 else { 27 TimeStopper timer = new TimeStopper(); 28 29 Reader syntaxInput = new InputStreamReader(JavaParser.class.getResourceAsStream("Java.syntax")); 31 32 40 41 48 49 50 Parser parser = new SerializedParser().get(null, syntaxInput, "Java"); 51 System.err.println("time to build Java file parser was "+timer.getInterval()); 52 53 56 parser.getLexer().addTokenListener(new Lexer.TokenListener() { 58 public void tokenReceived(Token token, boolean ignored) { 59 if (ignored) { 60 System.err.println("------------- Ignored Token Received -------------------"); 61 System.err.println(token.text); 62 System.err.println("--------------------------------------------------------"); 63 } 64 } 65 }); 66 67 for (int i = 0; i < args.length; i++) { 68 String fileToParse = args[i]; 69 FileReader parseInput = new FileReader(fileToParse); 70 System.err.println("========================================================"); 71 System.err.println("Parsing: "+fileToParse); 72 73 parser.setInput(parseInput); boolean ok = parser.parse(new PrintSemantic()); 76 System.err.println("========================================================"); 77 System.err.println("Parsing result from "+fileToParse+" is: "+ok+", parsing took "+timer.getInterval()+" millis"); 78 } 79 } 80 } 81 82 } 83 | Popular Tags |