private void Parse(DiagnosticsReport diagnostics, IAssemblySource.ConsumeLineDelegate consumeLine) { var inputStream = new LightInputStream(Input.ReadToEnd()); var lexer = new ScAsmLexer(inputStream) { TokenFactory = new LightTokenFactory() }; lexer.RemoveErrorListeners(); lexer.AddErrorListener(new SyntaxErrorListener <int>(diagnostics)); var tokens = new CommonTokenStream(lexer); var parser = new ScAsmParser(tokens) { BuildParseTree = false }; parser.AddParseListener(new ParseListener(this, parser, consumeLine)); parser.RemoveErrorListeners(); parser.AddErrorListener(new SyntaxErrorListener <IToken>(diagnostics)); parser.program(); }
public ParseListener(TextAssemblySource src, ScAsmParser parser, IAssemblySource.ConsumeLineDelegate consumeLine) => (this.src, this.parser, this.consumeLine) = (src, parser, consumeLine);