public virtual void Execute(Parser.ParsingState state) { var next = state.Next(); if (next == null) { throw new InternalNSLExcpetion("Next node is null, despite not continued, this should not happen"); } OnToken(next, state); }
public override void Execute(Parser.ParsingState state) { throw new InternalNSLExcpetion("Literal node cannot be push on the stack"); }
public abstract void Unbalanced(Parser.ParsingState state);
protected virtual void OnToken(Token <NSLTokenizer.TokenType> next, Parser.ParsingState state) { state.diagnostics.Add(new Diagnostic($"Unexpected {next.type} node ({GetType().Name})", next.start, next.end)); LoggerProvider.instance?.Source("PAR").Error().Message("Unexpected").Name(next.type.ToString()).Message("node (").Name(GetType().Name).Message(")").Pos(next.start).End(); }
override public void Unbalanced(Parser.ParsingState state) { state.diagnostics.Add(new Diagnostic($"Unbalanced block, expected {(isInline ? ")" : "}")}, {Start} →", state.rootNode.End, state.rootNode.End));
override protected void OnToken(Token <Tokenization.NSLTokenizer.TokenType> next, Parser.ParsingState state) { if (next.type == GetTerminationTokenType()) { state.Pop(); } else { base.OnToken(next, state); } }
public override void Unbalanced(Parser.ParsingState state) { throw new InternalNSLExcpetion("ActionNode node cannot be pushed on the stack"); }