public Integer() : base(inp => (from minus in Prim.Try(Prim.Character('-') | Prim.Return(new ParserChar('+'))) from digits in Prim.Many1(Prim.Digit()) let v = DigitsToInt(digits) select minus.Value == '+' ? v : -v) .Parse(inp) ) { }
public Many(Parser <A> parser) : base(inp => (Prim.Many1(parser) | Prim.Return(new ImmutableList <A>(new A[0]))).Parse(inp)) { }