Parser<T> class abstract

A parser combinator, which can parse very complicated grammars in a manageable manner.

Implementers

Constructors

Parser()

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

and(Parser other) Parser<T>
Consumes this and another parser, but only considers the result of this parser.
back(int amount) Parser<T>
Moves backward a certain amount of steps after parsing, if it was successful.
cache() Parser<T>
Caches the results of parse attempts at various locations within the source text.
cast<U extends T>() Parser<U>
Casts this parser to produce U objects.
castDynamic() Parser
Casts this parser to produce dynamic objects.
change<U>(ParseResult<U> f(ParseResult<T>)) Parser<U>
Runs the given function, which changes the returned ParseResult into one relating to a U object.
check(Matcher matcher, {String? errorMessage, SyntaxErrorSeverity? severity}) Parser<T>
Validates the parse result against a Matcher.
error({String? errorMessage, SyntaxErrorSeverity? severity}) Parser<T>
Binds an errorMessage to a copy of this parser.
foldErrors({bool equal(SyntaxError a, SyntaxError b)?}) Parser<T>
Removes multiple errors that occur in the same spot; this can reduce noise in parser output.
forward(int amount) Parser<T>
Skips forward a certain amount of steps after parsing, if it was successful.
map<U>(U f(ParseResult<T>)) Parser<U>
Transforms the parse result using a unary function.
maxDepth(int depth) Parser<T>
Prevents recursion past a certain depth, preventing stack overflow errors.
maybeParenthesized() Parser<T>
Parses this, either as-is or wrapped in parentheses.
negate({String errorMessage = 'Negate error', SyntaxErrorSeverity severity = SyntaxErrorSeverity.error}) Parser<T>
Ensures this pattern is not matched.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
opt({bool backtrack = true}) Parser<T>
Produces an optional copy of this parser.
or<U>(Parser<T> other) Parser<T>
Shortcut for or-ing two parsers.
parenthesized() Parser<T>
Parses this, wrapped in parentheses.
parse(SpanScanner scanner, [int depth = 1]) ParseResult<T>
Parses text from a SpanScanner.
plus() ListParser<T>
Parses this sequence one or more times.
safe({bool backtrack = true, String errorMessage = 'error', SyntaxErrorSeverity? severity}) Parser<T>
Safely escapes this parser when an error occurs.
separatedBy(Parser other) Parser<List<T>>
Expects to see an infinite amounts of the pattern, separated by the other pattern.
separatedByComma() Parser<List<T>>
space() Parser<T>
Consumes any trailing whitespace.
star({bool backtrack = true}) ListParser<T>
Consumes 0 or more instance(s) of this parser.
stringify(CodeBuffer buffer) → void
Prints a representation of this parser, ideally without causing a stack overflow.
surroundedBy(Parser left, [Parser? right]) Parser<T>
Expects to see the pattern, surrounded by the others.
surroundedByCurlyBraces({required T defaultValue}) Parser<T>
surroundedBySquareBrackets({required T defaultValue}) Parser<T>
then(Parser other) ListParser
Shortcut for chain-ing two parsers together.
times(int count, {bool exact = true, String tooFew = 'Too few', String tooMany = 'Too many', bool backtrack = true, SyntaxErrorSeverity? severity}) ListParser<T>
Expect this pattern a certain number of times.
toList() ListParser<T>
Casts this instance into a ListParser.
toString() String
A string representation of this object.
inherited
trail(Pattern pattern) Parser<T>
Consumes and ignores any trailing occurrences of pattern.
value(T f(ParseResult<T?>)) Parser<T>
Sets the value of the ParseResult.

Operators

operator &(Parser<T> other) Parser<T>
operator ==(Object other) bool
The equality operator.
inherited
operator |(Parser<T> other) Parser<T>
operator ~() Parser<T>