// GENERATED FILE. DO NOT EDIT. 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 failed bool var msg Message var next = s r, err := p(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r.Consumed() failed, _, msg = r.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val, next, _ := r.Succeeded() r2, err := p2(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r2.Consumed() failed, _, msg = r2.Failed() if failed { return Fail[In, Out](anyConsumed, msg), 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 failed bool var msg Message var next = s r, err := p(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r.Consumed() failed, _, msg = r.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val, next, _ := r.Succeeded() r2, err := p2(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r2.Consumed() failed, _, msg = r2.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val2, next, _ := r2.Succeeded() r3, err := p3(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r3.Consumed() failed, _, msg = r3.Failed() if failed { return Fail[In, Out](anyConsumed, msg), 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 failed bool var msg Message var next = s r, err := p(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r.Consumed() failed, _, msg = r.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val, next, _ := r.Succeeded() r2, err := p2(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r2.Consumed() failed, _, msg = r2.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val2, next, _ := r2.Succeeded() r3, err := p3(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r3.Consumed() failed, _, msg = r3.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val3, next, _ := r3.Succeeded() r4, err := p4(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r4.Consumed() failed, _, msg = r4.Failed() if failed { return Fail[In, Out](anyConsumed, msg), 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 failed bool var msg Message var next = s r, err := p(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r.Consumed() failed, _, msg = r.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val, next, _ := r.Succeeded() r2, err := p2(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r2.Consumed() failed, _, msg = r2.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val2, next, _ := r2.Succeeded() r3, err := p3(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r3.Consumed() failed, _, msg = r3.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val3, next, _ := r3.Succeeded() r4, err := p4(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r4.Consumed() failed, _, msg = r4.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val4, next, _ := r4.Succeeded() r5, err := p5(next) if err != nil { return Result[In, Out]{}, err } anyConsumed = anyConsumed || r5.Consumed() failed, _, msg = r5.Failed() if failed { return Fail[In, Out](anyConsumed, msg), nil } _, _, val5, next, _ := r5.Succeeded() final := f(val, val2, val3, val4, val5) return Succeed(anyConsumed, final, next, MessageOK(s.Pos())), nil } }