Ejemplo n.º 1
0
 public static Parser <TToken, IDelayed <ISeq <T> > > ManyTill <TToken, T>(
     this Parser <TToken, T> parser,
     Parser <TToken, Unit> terminator)
 {
     return(terminator.Select(_ => Seq.Empty <T>())
            .Or(parser.SelectMany(head => InternalCombinator.ManyTill(parser, terminator)
                                  .Select(tail => Seq.Cons(head, tail)))));
 }