Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
 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