public sealed override InternalResult <R> Parse(ref ParseState <TToken> state) { var consumedInput = false; var result1 = _p1.Parse(ref state); consumedInput = consumedInput || result1.ConsumedInput; if (!result1.Success) { return(InternalResult.Failure <R>(consumedInput)); } var result2 = _p2.Parse(ref state); consumedInput = consumedInput || result2.ConsumedInput; if (!result2.Success) { return(InternalResult.Failure <R>(consumedInput)); } var result3 = _p3.Parse(ref state); consumedInput = consumedInput || result3.ConsumedInput; if (!result3.Success) { return(InternalResult.Failure <R>(consumedInput)); } var result4 = _p4.Parse(ref state); consumedInput = consumedInput || result4.ConsumedInput; if (!result4.Success) { return(InternalResult.Failure <R>(consumedInput)); } var result5 = _p5.Parse(ref state); consumedInput = consumedInput || result5.ConsumedInput; if (!result5.Success) { return(InternalResult.Failure <R>(consumedInput)); } var result6 = _p6.Parse(ref state); consumedInput = consumedInput || result6.ConsumedInput; if (!result6.Success) { return(InternalResult.Failure <R>(consumedInput)); } return(InternalResult.Success <R>( _func( result1.Value, result2.Value, result3.Value, result4.Value, result5.Value, result6.Value ), consumedInput )); }