public static void Main(string[] args) { try { StreamReader input = new StreamReader(args[0]); // AntlrInputStream inputStream = new AntlrInputStream(input); UnbufferedCharStream inputStream = new UnbufferedCharStream(input); FpxLexer fpxLexer = new FpxLexer(inputStream); fpxLexer.TokenFactory = new CommonTokenFactory(true); // CommonTokenStream commonTokenStream = new CommonTokenStream(fpxLexer); UnbufferedTokenStream commonTokenStream = new UnbufferedTokenStream(fpxLexer); FpxParser fpxParser = new FpxParser(commonTokenStream); // fpxParser.ErrorHandler = new BailErrorStrategy(); // fpxParser.BuildParseTree = false; List <string> Errors = new List <string>(); GatherErrorListener gErrorListener = new GatherErrorListener(Errors); fpxParser.RemoveErrorListeners(); fpxParser.AddErrorListener(gErrorListener); FpxParser.PxfileContext pxFileContext = fpxParser.pxfile(); FpxVisitor visitor = new FpxVisitor(Errors); if (!gErrorListener.AnyNonRecoverableErrors) { Console.WriteLine(visitor.Visit(pxFileContext)); } DisplayErrors(Errors); } // try catch (Exception _e) { Console.WriteLine("Error: " + _e); Console.WriteLine("Error: " + _e.StackTrace); } // catch } // Main
static void TryFile(string fn) { var str = new UnbufferedCharStream(new StreamReader(fn)); var lexer = new AbcLexer(str); var tokens = new UnbufferedTokenStream(lexer); var parser = new AbcParser(tokens); var listener = new ErrorListener <IToken>(parser, lexer, tokens); parser.AddErrorListener(listener); lexer.AddErrorListener(new ErrorListener <int>(parser, lexer, tokens)); parser.BuildParseTree = false; lexer.TokenFactory = new MyCTF(); var tree = parser.file(); if (listener.had_error) { System.Console.WriteLine("error in parse."); } else { System.Console.WriteLine("parse completed."); } }
public void SetSourceFile(string filename) { var stream = new UnbufferedCharStream(new StreamReader(filename, Encoding.Default, true)); Lexer = LexerConstructor(stream); }