Exemplo n.º 1
0
 public static Parser <TToken, T> Chainl <TToken, T>(
     Parser <TToken, T> parser,
     Parser <TToken, Func <T, T, T> > op)
 {
     return(from lhs in parser
            from resultValue in InternalCombinator.ChainlRest <TToken, T>(parser, op, lhs)
            select resultValue);
 }
Exemplo n.º 2
0
 public static Parser <TToken, T> ChainlRest <TToken, T>(
     Parser <TToken, T> parser,
     Parser <TToken, Func <T, T, T> > op,
     T lhs)
 {
     return((from func in op
             from rhs in parser
             from resultValue in InternalCombinator.ChainlRest(parser, op, func(lhs, rhs))
             select resultValue)
            .Or(Parser.Return <TToken, T>(lhs)));
 }