private static Parser <A> Unit <A>(A value) { return(ParserUtil.Unit(value)); }
private static Parser <string> Lit(string value) { return(ParserUtil.Match(value)); }
private static Parser <B> Bind <A, B>(Parser <A> parser, Func <Parser <B> > gen) { return(ParserUtil.Bind(parser, gen)); }
// NOTE: Referencing a field in the definition of a field will yield null. // For recursive definitions use properties. Also make sure fields that // are defined in terms of other fields occur last. // TODO going to need to find a way to add in comments basically anywhere private static Parser <T> Alt <T>(params Parser <T>[] parsers) { return(ParserUtil.Alternate(parsers)); }