public bool Parse(string Text) { compilerDirectives = new List <compiler_directive>(); PT parsertools = new PT(); // контекст сканера и парсера parsertools.errors = Errs; parsertools.CurrentFileName = Path.GetFullPath(FileName); var scanner = new PreprocessorScanner(); scanner.SetSource(Text, 0); //scanner.parsertools = parsertools;// передали parsertools в объект сканера var parser = new PreprocessorParser(scanner); parser.compilerDirectives = compilerDirectives; //parser.parsertools = parsertools; // передали parsertools в объект парсера if (!parser.Parse()) { parsertools.AddError("Неопознанная синтаксическая ошибка препроцессора!", null); return(false); } return(true); }
private void SetupParser(string line) { lexer = new PreprocessorLexer(new AntlrInputStream(line)); var tokens = new CommonTokenStream(lexer); parser = new PreprocessorParser(tokens); }
internal VbaHeader() { classHeaderLines = new List <PreprocessorParser.ClassHeaderLineContext>(); attributes = new List <PreprocessorParser.ModuleAttributeContext>(); syntaxErrors = new List <SyntaxError>(); lexer = new PreprocessorLexer(new AntlrInputStream("")); var tokens = new CommonTokenStream(lexer); parser = new PreprocessorParser(tokens); errorHandler = new HeaderErrorListener(); lexer.AddErrorListener(errorHandler); parser.AddErrorListener(errorHandler); }
internal static PreprocessorParser BuildPreprocessorParser(string source) { var errorHandler = new TestErrorListener(); var input = new AntlrInputStream(source); var lexer = new PreprocessorLexer(input); lexer.AddErrorListener(errorHandler); var tokens = new CommonTokenStream(lexer); var parser = new PreprocessorParser(tokens); parser.AddErrorListener(errorHandler); parser.AddErrorListener(new DiagnosticErrorListener()); parser.ErrorHandler = new BailErrorStrategy(); return(parser); }
public bool Parse(string Text) { compilerDirectives = new List<compiler_directive>(); PT parsertools = new PT(); // контекст сканера и парсера parsertools.errors = Errs; parsertools.CurrentFileName = Path.GetFullPath(FileName); var scanner = new PreprocessorScanner(); scanner.SetSource(Text, 0); //scanner.parsertools = parsertools;// передали parsertools в объект сканера var parser = new PreprocessorParser(scanner); parser.compilerDirectives = compilerDirectives; //parser.parsertools = parsertools; // передали parsertools в объект парсера if (!parser.Parse()) { parsertools.AddError("Неопознанная синтаксическая ошибка препроцессора!", null); return false; } return true; }