private List <SyntaxError> ParseAndReturnErrors(string input)
        {
            AntlrInputStream    inputStream       = new AntlrInputStream(input);
            CsharpSubsetLexer   lexer             = new CsharpSubsetLexer(inputStream);
            CommonTokenStream   commonTokenStream = new CommonTokenStream(lexer);
            CsharpSubsetParser  parser            = new CsharpSubsetParser(commonTokenStream);
            SyntaxErrorListener listener          = new SyntaxErrorListener();

            parser.AddErrorListener(listener);
            CsharpSubsetParser.ProgramContext programContext = parser.program();
            return(listener.SyntaxErrors);
        }
Exemple #2
0
        private void ParseCode(string codeString)
        {
            InputStream       = new AntlrInputStream(codeString);
            Lexer             = new CsharpSubsetLexer(InputStream);
            CommonTokenStream = new CommonTokenStream(Lexer);
            Parser            = new CsharpSubsetParser(CommonTokenStream);
            SyntaxErrorListener errorListener = new SyntaxErrorListener();

            Parser.AddErrorListener(errorListener);
            Tree = Parser.program();
            if (errorListener.SyntaxErrors.Any())
            {
                _logOutput.Add("Couldn't refactor, one or more syntax errors occurred:");
                foreach (var error in errorListener.SyntaxErrors)
                {
                    _logOutput.Add(error.AsString());
                }

                SyntaxErrorsFound = true;
                Tree = null;
            }
        }
 /// <summary>
 /// Exit a parse tree produced by <see cref="CsharpSubsetParser.program"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitProgram([NotNull] CsharpSubsetParser.ProgramContext context)
 {
 }
 /// <summary>
 /// Visit a parse tree produced by <see cref="CsharpSubsetParser.program"/>.
 /// <para>
 /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
 /// on <paramref name="context"/>.
 /// </para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 /// <return>The visitor result.</return>
 public virtual Result VisitProgram([NotNull] CsharpSubsetParser.ProgramContext context)
 {
     return(VisitChildren(context));
 }