public static Parser <TToken, IEnumerable <T> > SepBy1_Optimized <TToken, T>( Parser <TToken, T> parser, Parser <TToken, Unit> sep) { return(parser.Pipe(InternalCombinator.Many0_Optimized(sep.Bindr(parser)), (head, tail) => Enumerable.Concat(new[] { head }, tail))); }
public static Parser <TToken, IEnumerable <T> > Many0 <TToken, T>( this Parser <TToken, T> parser) { /* * return InternalCombinator.Many0(parser) * .Select(delayedSeq => delayedSeq.AsEnumerable()); */ return(InternalCombinator.Many0_Optimized(parser)); }
public static Parser <TToken, IEnumerable <T> > EndBy0_Optimized <TToken, T>( Parser <TToken, T> parser, Parser <TToken, Unit> sep) { return(InternalCombinator.Many0_Optimized(parser.Bindl(sep))); }
public static Parser <TToken, IEnumerable <T> > Many1_Optimized <TToken, T>( Parser <TToken, T> parser) { return(parser.Pipe(InternalCombinator.Many0_Optimized(parser), (head, tail) => Enumerable.Concat(new[] { head }, tail))); }