public override Parser HandleParseError(Parser parser, CompilationError<ParseError> error) { return ParentContext.HandleParseError(parser, error); }
public virtual Parser HandleParseError(Parser parser, CompilationError<ParseError> error) { return parser; }
public Parser OnError(Parser parser, CompilationError<ParseError> error) { return compilationContext.HandleParseError(parser, error); }
public HighlightingParser(Highlighter highlighter) { this.highlighter = highlighter; this.sourceHightlighter = new IncrementalSourceHighlighter(highlighter); parser = new LineParser(source => source(sourceHightlighter), (p, e) => p); }
public void OnToken(Token token) { this.token = token; token(this); parser = token(parser); }
public override void OnDone() { parser = token(parser); consumer = location => highlighter.HighlightOther(new Region(location, 1)); }
public void Tokenize(Character character) { if(tokenizer != null) { tokenizer = tokenizer.Tokenize(character); } else if(character.Char == '\t') { indentation = indentation + 1; } else { parser = compilationContext.CreateParser(source => source(syntaxifier)); tokenizer = compilationContext.CreateTokenizer( token => this.token = token, () => parser = token(parser), OnLine, compilationContext); tokenizer = tokenizer.Tokenize(character); } }