Exemplo n.º 1
0
 public static Parser <TToken, IDelayed <ISeq <T> > > Sequence <TToken, T>(
     IDelayed <ISeq <Parser <TToken, T> > > parsers)
 {
     return(parsers.Force().Case(
                empty: () =>
                Parser.Return <TToken, IDelayed <ISeq <T> > >(Seq.Empty <T>()),
                headAndTail: pair =>
                pair.Item0.SelectMany(value0 => InternalCombinator.Sequence(pair.Item1).Select(value1 => Seq.Cons(value0, value1)))));
 }
Exemplo n.º 2
0
 public static Parser <TToken, IDelayed <ISeq <T> > > Repeat <TToken, T>(
     Parser <TToken, T> parser,
     Int32 count)
 {
     return(InternalCombinator.Sequence(Seq.Of(Enumerable.Repeat(parser, count))));
 }