public static IEnumerable <T> ParseMany <T>(this IInlineParser <T> parser, ParserContext context, Subject subject) where T : class { var parts = new List <T>(); while (!subject.EndOfString) { var part = parser.Parse(context, subject); if (part == null) { break; } parts.Add(part); } return(parts); }