Exemplo n.º 1
0
        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>());
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }