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>()); }