Parser class

Helper methods for creating and executing parsers.

public static class Parser

Public Members

name description
static readonly AnyChar Parses any character; i.e. only fails at the end of the text.
static readonly Digit Parses any digit (as determined by char.IsDigit).
static readonly Letter Parses any letter (as determined by char.IsLetter).
static readonly LetterOrDigit Parses any letter or digit (as determined by char.IsLetterOrDigit).
static readonly WhiteSpace Parses any whitespace character (as determined by char.IsWhiteSpace).
static AnyCharExcept(…) Parses any character except the specified character.
static Append<T>(…) Appends a successfully parsed value to the end of a successfully parsed collection.
static AtLeast<T>(…) Succeeds if the parser succeeds at least the specified number of times. The value is a collection of as many items as can be successfully parsed.
static AtLeastOnce<T>(…) Succeeds if the parser succeeds at least once. The value is a collection of as many items as can be successfully parsed.
static AtMost<T>(…) Always succeeds. The value is a collection of at most the specified number of successfully parsed items.
static AtMostOnce<T>(…) Always succeeds. The value is a one-item collection of a single successfully parsed item; otherwise an empty collection.
static Bracketed<TValue,TBracketing>(…) Succeeds if the specified parser succeeds beforehand and afterward (ignoring its results).
static Bracketed<TValue,TPreceding,TFollowing>(…) Succeeds if the specified parsers succeed beforehand and afterward (ignoring their results).
static Capture<T>(…) Captures the parsed text as a string.
static ChainBinary<TValue,TOperator>(…) Chains a left-associative binary operator to the parser.
static ChainBinaryList<TValue,TOperator>(…) Chains a left-associative binary operator to the parser.
static ChainUnary<TValue,TOperator>(…) Chains a left-associative unary operator to the parser.
static ChainUnaryList<TValue,TOperator>(…) Chains a left-associative unary operator to the parser.
static Char(…) Parses a single character if the specified predicate returns true. (2 methods)
static Chars(…) Maps a successfully parsed string into a successfully parsed collection of characters.
static Concat(…) Concatenates the successfully parsed collection of strings into a single successfully parsed string.
static Concat<T>(…) Concatenates the two successfully parsed collections.
static Create<T>(…) Creates a parser from a delegate.
static Delimited<TValue,TDelimiter>(…) Succeeds if the specified parser succeeds at least once, requiring and ignoring the specified delimiter between each item.
static DelimitedAllowTrailing<TValue,TDelimiter>(…) Succeeds if the specified parser succeeds at least once, requiring and ignoring the specified delimiter between each item, and allowing a single optional trailing delimiter.
static End<T>(…) Succeeds only at the end of the text. (2 methods)
static Failure<T>() Always fails.
static Failure<T>(…) Fails even if the parser is successful.
static FollowedBy<TValue,TFollowing>(…) Succeeds if the specified parser also succeeds afterward (ignoring its result).
static Join(…) Joins the successfully parsed collection of strings into a single successfully parsed string using the specified separator.
static Many<T>(…) Always succeeds. The value is a collection of as many items as can be successfully parsed.
static Named<T>(…) Reports a named failure with the specified name if the parser fails.
static Not<T>(…) Fails if the parser succeeds, and succeeds with the default value if it fails.
static Once<T>(…) Succeeds if the parser succeeds. The value is a one-item collection of the successfully parsed item.
static Or<T>(…) Succeeds with a successful parser, if any. (3 methods)
static OrDefault<T>(…) Succeeds with the default value if the parser fails. (2 methods)
static OrEmpty<T>(…) Succeeds with an empty collection if the parser fails. (3 methods)
static Parse<T>(…) Parses the specified text, throwing ParseException on failure. (2 methods)
static Positioned<T>(…) Wraps the text position and length around a successfully parsed value.
static PrecededBy<TValue,TPreceding>(…) Succeeds if the specified parser also succeeds beforehand (ignoring its result).
static Ref<T>(…) Refers to another parser indirectly. This allows circular compile-time dependency between parsers. (3 methods)
static Regex(…) Succeeds if the specified regular expression pattern matches the text. (3 methods)
static Repeat<T>(…) Succeeds if the parser succeeds the specified number of times. The value is a collection of the parsed items. (2 methods)
static Select<TBefore,TAfter>(…) Converts any successfully parsed value.
static SelectMany<TBefore,TDuring,TAfter>(…) Used to support LINQ query syntax.
static SkipThen<T1,T2>(…) Executes one parser after another, ignoring the output of the first parser.
static String(…) Parses the specified string using ordinal (case-sensitive) comparison. (3 methods)
static Success<T>(…) Succeeds with the specified value without advancing the text position.
static Success<TBefore,TAfter>(…) Succeeds with the specified value if the parser is successful.
static Then<T1,T2>(…) Executes one parser after another.
static Then<TBefore,TAfter>(…) Executes one parser after another.
static Then<T1,T2,T3>(…) Executes one parser after another.
static Then<T1,T2,TAfter>(…) Executes one parser after another.
static Then<T1,T2,T3,T4>(…) Executes one parser after another.
static Then<T1,T2,T3,T4,T5>(…) Executes one parser after another.
static Then<T1,T2,T3,T4,T5,T6>(…) Executes one parser after another.
static Then<T1,T2,T3,T4,T5,T6,T7>(…) Executes one parser after another.
static Then<T1,T2,T3,T4,T5,T6,T7,T8>(…) Executes one parser after another.
static ThenSkip<T1,T2>(…) Executes one parser after another, ignoring the output of the second parser.
static Trim<T>(…) Succeeds if the specified parser succeeds, ignoring any whitespace characters beforehand or afterward.
static TrimEnd<T>(…) Succeeds if the specified parser succeeds, ignoring any whitespace characters afterward.
static TrimStart<T>(…) Succeeds if the specified parser succeeds, ignoring any whitespace characters beforehand.
static TryParse<T>(…) Attempts to parse the specified text. (4 methods)
static Where<T>(…) Fails if the specified predicate returns false for the successfully parsed value. (2 methods)

See Also