/// <summary> /// Returns a list of results from the given parser separated by a separator /// pattern. Continues until the item or separator pattern return failure, or /// the minimum/maximum counts are not satisfied. Returns an enumeration of results. /// </summary> /// <typeparam name="TInput"></typeparam> /// <typeparam name="TSeparator"></typeparam> /// <typeparam name="TOutput"></typeparam> /// <param name="p"></param> /// <param name="separator"></param> /// <param name="minimum"></param> /// <param name="maximum"></param> /// <returns></returns> public static IParser <TInput, IReadOnlyList <TOutput> > ListSeparatedBy <TInput, TSeparator, TOutput>(this IParser <TInput, TOutput> p, IParser <TInput, TSeparator> separator, int minimum = 0, int?maximum = null) => ParserMethods <TInput> .SeparatedList(p, separator, minimum, maximum);
/// <summary> /// Returns a list of results from the given parser separated by a separator pattern. Continues until /// the item or separator parser return failure. Returns an enumerable of results. /// </summary> /// <typeparam name="TInput"></typeparam> /// <typeparam name="TSeparator"></typeparam> /// <typeparam name="TOutput"></typeparam> /// <param name="p"></param> /// <param name="separator"></param> /// <param name="atLeastOne"></param> /// <returns></returns> public static IParser <TInput, IReadOnlyList <TOutput> > ListSeparatedBy <TInput, TSeparator, TOutput>(this IParser <TInput, TOutput> p, IParser <TInput, TSeparator> separator, bool atLeastOne) => ParserMethods <TInput> .SeparatedList(p, separator, atLeastOne);