/// <summary> /// Returns a visitor with the results of a single parsing pass /// </summary> /// <param name="textToParse">Z80 assembly code to parse</param> /// <returns> /// Visitor with the syntax tree /// </returns> protected virtual List <Z80AsmParserErrorInfo> ParseWithErrors(string textToParse) { var inputStream = new AntlrInputStream(textToParse); var lexer = new Z80AsmLexer(inputStream); var tokenStream = new CommonTokenStream(lexer); var parser = new Z80AsmParser(tokenStream); var context = parser.compileUnit(); var visitor = new Z80AsmVisitor(); visitor.Visit(context); return(parser.SyntaxErrors); }
/// <summary> /// Visits the source code /// </summary> /// <param name="source">Source code string</param> /// <returns>Source code visitor object</returns> public static Z80AsmVisitor VisitSource(string source) { var inputStream = new AntlrInputStream(source); var lexer = new Z80AsmLexer(inputStream); var tokenStream = new CommonTokenStream(lexer); var parser = new Z80AsmParser(tokenStream); var context = parser.compileUnit(); var visitor = new Z80AsmVisitor(inputStream); visitor.Visit(context); return(visitor); }
/// <summary> /// Returns a visitor with the results of a single parsing pass /// </summary> /// <param name="textToParse">Z80 assembly code to parse</param> /// <param name="expectedErrors">Number of errors expected</param> /// <returns> /// Visitor with the syntax tree /// </returns> protected virtual Z80AsmVisitor Parse(string textToParse, int expectedErrors = 0) { var inputStream = new AntlrInputStream(textToParse); var lexer = new Z80AsmLexer(inputStream); var tokenStream = new CommonTokenStream(lexer); var parser = new Z80AsmParser(tokenStream); var context = parser.compileUnit(); var visitor = new Z80AsmVisitor(); visitor.Visit(context); parser.SyntaxErrors.Count.ShouldBe(expectedErrors); return(visitor); }