Beispiel #1
0
 public static Parser <TValue> ChainRight <TValue>(this Parser <TValue> parser, Parser <Func <TValue, TValue, TValue> > func)
 {
     return(parser.SelectMany(x =>
                              (from f in func
                               from y in parser.ChainRight(func)
                               select f(x, y))
                              .Or(Return(x))));
 }
Beispiel #2
0
 public static Parser <TValue> ChainRight <TValue>(this Parser <TValue> parser, Parser <Func <TValue, TValue, TValue> > func, TValue defaultValue)
 {
     return(parser.ChainRight(func).Or(Return(defaultValue)));
 }