private List <NewFolding> CreateNewFoldings(String text, ref List <MarkerPosition> markers) { List <NewFolding> newFoldings = null; try { using (var reader = new StringReader(text)) { var antlrInputStream = new AntlrInputStream(reader); var lexer = new LuaLexer(antlrInputStream); var tokens = new CommonTokenStream(lexer); var parser = new LuaParser(tokens) { BuildParseTree = true }; parser.RemoveErrorListeners(); parser.AddErrorListener(new MyErrorListener(_textMarkerService, ref markers)); var tree = parser.block(); var visitor = new LuaVisitor(); newFoldings = visitor.Visit(tree); Interlocked.Exchange(ref _syntaxErrors, parser.NumberOfSyntaxErrors); } } catch (Exception e) { // MessageBox.Show(e.ToString(), "NodeMCU Studio 2015", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.Yes); //On error resume next } return(newFoldings ?? new List <NewFolding>()); }
private static LuaParser CreateParser(Script script, ICharStream charStream, int sourceIdx, Func <LuaParser, IParseTree> dumper, AntlrErrorListener errorListener) { LuaLexer lexer; LuaParser parser; using (script.PerformanceStats.StartStopwatch(Diagnostics.PerformanceCounter.Parsing)) { lexer = new LuaLexer(charStream); lexer.RemoveErrorListeners(); lexer.AddErrorListener(errorListener); parser = new LuaParser(new CommonTokenStream(lexer)) { ErrorHandler = new BailErrorStrategy(), }; parser.Interpreter.PredictionMode = PredictionMode.Ll; parser.RemoveErrorListeners(); parser.AddErrorListener(errorListener); //Debug_DumpAst(parser, sourceIdx, dumper); } return(parser); }
public LuaParser CreateParser(string code) { ICharStream stream = CharStreams.fromstring(code); var lexer = new LuaLexer(stream); lexer.AddErrorListener(new ThrowExceptionErrorListener()); ITokenStream tokens = new CommonTokenStream(lexer); var parser = new LuaParser(tokens); parser.BuildParseTree = true; parser.RemoveErrorListeners(); parser.AddErrorListener(new ThrowExceptionErrorListener()); return(parser); }