LimitedRepeatingParser<R> class abstract

An abstract parser that repeatedly parses between 'min' and 'max' instances of its delegate and that requires the input to be completed with a specified parser 'limit'. Subclasses provide repeating behavior as typically seen in regular expression implementations (non-blind).

Inheritance
Implementers
Available Extensions

Constructors

LimitedRepeatingParser(Parser<R> delegate, Parser<void> limit, int min, int max)

Properties

children List<Parser>
Returns a list of directly referenced parsers.
no setteroverride
delegate Parser<R>
The parser this parser delegates to.
getter/setter pairinherited
hashCode int
The hash code for this object.
no setterinherited
limit Parser<void>
Parser restraining further consumption of the delegate parser.
getter/setter pair
max int
The maximum amount of repetitions, or unbounded.
finalinherited
min int
The minimum amount of repetitions.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

captureResultGeneric<T>(T callback<R>(Parser<R> self)) → T
Internal helper to capture the generic type R of the parse result. This makes it possible to wrap the parser without loosing type information.
inherited
copy() Parser<List<R>>
Returns a shallow copy of the receiver.
inherited
fastParseOn(String buffer, int position) int
Primitive method doing the actual parsing.
inherited
hasEqualChildren(covariant Parser other, Set<Parser> seen) bool
Compare the children of two parsers.
inherited
hasEqualProperties(covariant RepeatingParser<R, List<R>> other) bool
Compare the properties of two parsers.
inherited
isEqualTo(Parser other, [Set<Parser>? seen]) bool
Recursively tests for structural equality of two parsers.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
parse(String input, {int start = 0}) Result<List<R>>
Returns the parse result of the input.
inherited
parseOn(Context context) Result<List<R>>
Primitive method doing the actual parsing.
inherited
replace(Parser source, Parser target) → void
Changes the receiver by replacing source with target. Does nothing if source does not exist in Parser.children.
override
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited