/// <summary> /// The results of the given parser are optional. If the given parser fails, a default value /// will be returned. /// </summary> /// <typeparam name="TInput"></typeparam> /// <typeparam name="TOutput"></typeparam> /// <param name="p"></param> /// <param name="getDefault"></param> /// <returns></returns> public static IParser <TInput, TOutput> Optional <TInput, TOutput>(this IParser <TInput, TOutput> p, Func <IParseState <TInput>, TOutput> getDefault) => ParserMethods <TInput> .Optional(p, getDefault);
/// <summary> /// The results of the given parser are optional. Returns success with an Option value /// which can be used to determine if the parser succeeded. /// </summary> /// <typeparam name="TInput"></typeparam> /// <typeparam name="TOutput"></typeparam> /// <param name="p"></param> /// <returns></returns> public static IParser <TInput, IOption <TOutput> > Optional <TInput, TOutput>(this IParser <TInput, TOutput> p) => ParserMethods <TInput> .Optional(p);