protected sealed override Result <char, string> Run <TState>(TState state) { var result = ParsecState.AsEnumerable <char, TState>(state).Take(this._text.Length).ToArray(); var text = new string(result.Select(x => x.Current).ToArray()); return(string.Equals(text, this._text, this._comparison) ? Result.Success <char, TState, string>(text, result.Length == 0 ? state : result.Last().Next) : Result.Failure <char, TState, string>($"Expected '{this._text}' but was '{text}'", state)); }
protected sealed override Result <TToken, Unit> Run <TState>(TState state) => ParsecState.AsEnumerable <TToken, TState>(state).Take(this._count).ToArray() is var result && result.Length == this._count