// GENERATED FILE. DO NOT EDIT. // SPDX-License-Identifier: Unlicense package gigaparsec func Seq2[In, Out, T, T2 any]( p Parser[In, T], p2 Parser[In, T2], f func(T, T2) Out, ) Parser[In, Out] { return func(s State[In]) (Result[In, Out], error) { var anyConsumed bool var next = s r, err := p(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r.Consumed() if r.Failed() { return Fail[In, Out](anyConsumed, r.Message()), nil } _, val, next := r.Succeeded() r2, err := p2(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r2.Consumed() if r2.Failed() { return Fail[In, Out](anyConsumed, r2.Message()), nil } _, val2, next := r2.Succeeded() final := f(val, val2) return Succeed(anyConsumed, final, next, MessageOK(s.Pos())), nil } } func Seq3[In, Out, T, T2, T3 any]( p Parser[In, T], p2 Parser[In, T2], p3 Parser[In, T3], f func(T, T2, T3) Out, ) Parser[In, Out] { return func(s State[In]) (Result[In, Out], error) { var anyConsumed bool var next = s r, err := p(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r.Consumed() if r.Failed() { return Fail[In, Out](anyConsumed, r.Message()), nil } _, val, next := r.Succeeded() r2, err := p2(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r2.Consumed() if r2.Failed() { return Fail[In, Out](anyConsumed, r2.Message()), nil } _, val2, next := r2.Succeeded() r3, err := p3(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r3.Consumed() if r3.Failed() { return Fail[In, Out](anyConsumed, r3.Message()), nil } _, val3, next := r3.Succeeded() final := f(val, val2, val3) return Succeed(anyConsumed, final, next, MessageOK(s.Pos())), nil } } func Seq4[In, Out, T, T2, T3, T4 any]( p Parser[In, T], p2 Parser[In, T2], p3 Parser[In, T3], p4 Parser[In, T4], f func(T, T2, T3, T4) Out, ) Parser[In, Out] { return func(s State[In]) (Result[In, Out], error) { var anyConsumed bool var next = s r, err := p(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r.Consumed() if r.Failed() { return Fail[In, Out](anyConsumed, r.Message()), nil } _, val, next := r.Succeeded() r2, err := p2(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r2.Consumed() if r2.Failed() { return Fail[In, Out](anyConsumed, r2.Message()), nil } _, val2, next := r2.Succeeded() r3, err := p3(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r3.Consumed() if r3.Failed() { return Fail[In, Out](anyConsumed, r3.Message()), nil } _, val3, next := r3.Succeeded() r4, err := p4(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r4.Consumed() if r4.Failed() { return Fail[In, Out](anyConsumed, r4.Message()), nil } _, val4, next := r4.Succeeded() final := f(val, val2, val3, val4) return Succeed(anyConsumed, final, next, MessageOK(s.Pos())), nil } } func Seq5[In, Out, T, T2, T3, T4, T5 any]( p Parser[In, T], p2 Parser[In, T2], p3 Parser[In, T3], p4 Parser[In, T4], p5 Parser[In, T5], f func(T, T2, T3, T4, T5) Out, ) Parser[In, Out] { return func(s State[In]) (Result[In, Out], error) { var anyConsumed bool var next = s r, err := p(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r.Consumed() if r.Failed() { return Fail[In, Out](anyConsumed, r.Message()), nil } _, val, next := r.Succeeded() r2, err := p2(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r2.Consumed() if r2.Failed() { return Fail[In, Out](anyConsumed, r2.Message()), nil } _, val2, next := r2.Succeeded() r3, err := p3(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r3.Consumed() if r3.Failed() { return Fail[In, Out](anyConsumed, r3.Message()), nil } _, val3, next := r3.Succeeded() r4, err := p4(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r4.Consumed() if r4.Failed() { return Fail[In, Out](anyConsumed, r4.Message()), nil } _, val4, next := r4.Succeeded() r5, err := p5(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r5.Consumed() if r5.Failed() { return Fail[In, Out](anyConsumed, r5.Message()), nil } _, val5, next := r5.Succeeded() final := f(val, val2, val3, val4, val5) return Succeed(anyConsumed, final, next, MessageOK(s.Pos())), nil } }