Parser<R> class
abstract
Abstract base class of all parsers that produce a parse result of type R
.
- Implementers
- AnyCharacterParser
- DelegateParser
- EndOfInputParser
- EpsilonParser
- FailureParser
- LabeledParser
- ListParser
- NewlineParser
- PatternParser
- PositionParser
- PredicateParser
- RepeatingCharacterParser
- ResolvableParser
- SequenceParser2
- SequenceParser3
- SequenceParser4
- SequenceParser5
- SequenceParser6
- SequenceParser7
- SequenceParser8
- SequenceParser9
- SingleCharacterParser
- Available extensions
- AcceptParser
- AndParserExtension
- CastListParserExtension
- CastParserExtension
- ChoiceParserExtension
- ContinuationParserExtension
- EndOfInputParserExtension
- FlattenParserExtension
- GreedyRepeatingParserExtension
- LabelParserExtension
- LazyRepeatingParserExtension
- MapParserExtension
- MatchesParserExtension
- NotParserExtension
- OptionalParserExtension
- PatternParserExtension
- PermuteParserExtension
- PickParserExtension
- PossessiveRepeatingParserExtension
- RecordParserExtension2
- RecordParserExtension3
- RecordParserExtension4
- RecordParserExtension5
- RecordParserExtension6
- RecordParserExtension7
- RecordParserExtension8
- RecordParserExtension9
- RepeatingCharacterParserExtension
- SeparatedByParserExtension
- SeparatedRepeatingParserExtension
- SequenceParserExtension
- SettableParserExtension
- SkipParserExtension
- TokenParserExtension
- TrimmingParserExtension
- WhereParserExtension
- Annotations
-
- @optionalTypeArgs
Constructors
- Parser()
Properties
Methods
-
accept(
String input, {int start = 0}) → bool -
Available on Parser<
Tests if theR> , provided by the AcceptParser extensioninput
can be successfully parsed. -
allMatches(
String input, {int start = 0, bool overlapping = false}) → Iterable< T> -
Available on Parser<
Returns a lazy iterable over all non-overlapping successful parse results of typeT> , provided by the MatchesParserExtension extensionT
over the providedinput
. -
and(
) → Parser< R> -
Available on Parser<
Returns a parser (logical and-predicate) that succeeds whenever the receiver does, but never consumes input.R> , provided by the AndParserExtension extension -
callCC<
S> (ContinuationHandler< R, S> handler) → Parser<S> -
Available on Parser<
Returns a parser that when activated captures a continuation function and passes it together with the current context into the handler.R> , provided by the ContinuationParserExtension extension -
captureResultGeneric<
T> (T callback< R>(Parser< ) → TR> self) -
Internal helper to capture the generic type
R
of the parse result. This makes it possible to wrap the parser without loosing type information. -
cast<
S> () → Parser< S> -
Available on Parser<
Returns a parser that casts itself toR> , provided by the CastParserExtension extensionParser<R>
. -
castList<
S> () → Parser< List< S> > -
Available on Parser<
Returns a parser that casts itself toR> , provided by the CastListParserExtension extensionParser<List<R>>
. Assumes this parser to be of typeParser<List>
. -
copy(
) → Parser< R> - Returns a shallow copy of the receiver.
-
end(
[String message = 'end of input expected']) → Parser< R> -
Available on Parser<
Returns a parser that succeeds only if the receiver consumes the complete input, otherwise return a failure with the optionalR> , provided by the EndOfInputParserExtension extensionmessage
. -
fastParseOn(
String buffer, int position) → int - Primitive method doing the actual parsing.
-
flatten(
[String? message]) → Parser< String> -
Available on Parser<
Returns a parser that discards the result of the receiver and answers the sub-string its delegate consumes.R> , provided by the FlattenParserExtension extension -
hasEqualChildren(
covariant Parser other, Set< Parser> seen) → bool - Compare the children of two parsers.
-
hasEqualProperties(
covariant Parser other) → bool - Compare the properties of two parsers.
-
isEqualTo(
Parser other, [Set< Parser> ? seen]) → bool - Recursively tests for structural equality of two parsers.
-
labeled(
String label) → LabeledParser< R> -
Available on Parser<
Returns a parser that simply defers to its delegate, but that has aR> , provided by the LabelParserExtension extensionlabel
for debugging purposes. -
map<
S> (Callback< R, S> callback, {bool hasSideEffects = false}) → Parser<S> -
Available on Parser<
Returns a parser that evaluates aR> , provided by the MapParserExtension extensioncallback
as the production action on success of the receiver. -
map2<
R> (R callback(T1, T2), {bool hasSideEffects = false}) → Parser< R> -
Available on Parser<
Maps a parsed Record to(T1, T2)> , provided by the RecordParserExtension2 extensionR
using the providedcallback
, see MapParserExtension.map for details. -
map3<
R> (R callback(T1, T2, T3), {bool hasSideEffects = false}) → Parser< R> -
Available on Parser<
Maps a parsed Record to(T1, T2, T3)> , provided by the RecordParserExtension3 extensionR
using the providedcallback
, see MapParserExtension.map for details. -
map4<
R> (R callback(T1, T2, T3, T4), {bool hasSideEffects = false}) → Parser< R> -
Available on Parser<
Maps a parsed Record to(T1, T2, T3, T4)> , provided by the RecordParserExtension4 extensionR
using the providedcallback
, see MapParserExtension.map for details. -
map5<
R> (R callback(T1, T2, T3, T4, T5), {bool hasSideEffects = false}) → Parser< R> -
Available on Parser<
Maps a parsed Record to(T1, T2, T3, T4, T5)> , provided by the RecordParserExtension5 extensionR
using the providedcallback
, see MapParserExtension.map for details. -
map6<
R> (R callback(T1, T2, T3, T4, T5, T6), {bool hasSideEffects = false}) → Parser< R> -
Available on Parser<
Maps a parsed Record to(T1, T2, T3, T4, T5, T6)> , provided by the RecordParserExtension6 extensionR
using the providedcallback
, see MapParserExtension.map for details. -
map7<
R> (R callback(T1, T2, T3, T4, T5, T6, T7), {bool hasSideEffects = false}) → Parser< R> -
Available on Parser<
Maps a parsed Record to(T1, T2, T3, T4, T5, T6, T7)> , provided by the RecordParserExtension7 extensionR
using the providedcallback
, see MapParserExtension.map for details. -
map8<
R> (R callback(T1, T2, T3, T4, T5, T6, T7, T8), {bool hasSideEffects = false}) → Parser< R> -
Available on Parser<
Maps a parsed Record to(T1, T2, T3, T4, T5, T6, T7, T8)> , provided by the RecordParserExtension8 extensionR
using the providedcallback
, see MapParserExtension.map for details. -
map9<
R> (R callback(T1, T2, T3, T4, T5, T6, T7, T8, T9), {bool hasSideEffects = false}) → Parser< R> -
Available on Parser<
Maps a parsed Record to(T1, T2, T3, T4, T5, T6, T7, T8, T9)> , provided by the RecordParserExtension9 extensionR
using the providedcallback
, see MapParserExtension.map for details. -
matches(
String input) → List< T> -
Available on Parser<
Returns a list of all successful overlapping parses ofT> , provided by the MatchesParserExtension extensioninput
. -
matchesSkipping(
String input) → List< T> -
Available on Parser<
Returns a list of all successful non-overlapping parses ofT> , provided by the MatchesParserExtension extensioninput
. -
neg(
[String message = 'input not expected']) → Parser< String> -
Available on Parser<
Returns a parser that consumes any input token (character), but the receiver.R> , provided by the NotParserExtension extension -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
not(
[String message = 'success not expected']) → Parser< Failure> -
Available on Parser<
Returns a parser (logical not-predicate) that succeeds with the Failure whenever the receiver fails, but never consumes input.R> , provided by the NotParserExtension extension -
optional(
) → Parser< R?> -
Available on Parser<
Returns new parser that accepts the receiver, if possible. The resulting parser returns the result of the receiver, orR> , provided by the OptionalParserExtension extensionnull
if not applicable. -
optionalWith(
R value) → Parser< R> -
Available on Parser<
Returns new parser that accepts the receiver, if possible. The resulting parser returns the result of the receiver, orR> , provided by the OptionalParserExtension extensionvalue
if not applicable. -
or(
Parser other, {FailureJoiner? failureJoiner}) → ChoiceParser -
Available on Parser, provided by the ChoiceParserExtension extension
Returns a parser that accepts the receiver orother
. The resulting parser returns the parse result of the receiver, if the receiver fails it returns the parse result ofother
(exclusive ordered choice). -
parse(
String input, {int start = 0}) → Result< R> -
Returns the parse result of the
input
. -
parseOn(
Context context) → Result< R> - Primitive method doing the actual parsing.
-
permute(
List< int> indexes) → Parser<List< R> > -
Available on Parser<
Returns a parser that transforms a successful parse result by returning the permuted elements atList< , provided by the PermuteParserExtension extensionR> >indexes
of a list. Negative indexes can be used to access the elements from the back of the list. -
pick(
int index) → Parser< R> -
Available on Parser<
Returns a parser that transforms a successful parse result by returning the element atList< , provided by the PickParserExtension extensionR> >index
of a list. A negative index can be used to access the elements from the back of the list. -
plus(
) → Parser< List< R> > -
Available on Parser<
Returns a parser that accepts the receiver one or more times. The resulting parser returns a list of the parse results of the receiver.R> , provided by the PossessiveRepeatingParserExtension extension -
plusGreedy(
Parser< void> limit) → Parser<List< R> > -
Available on Parser<
Returns a parser that parses the receiver one or more times until it reachesR> , provided by the GreedyRepeatingParserExtension extensionlimit
. This is a greedy non-blind implementation of the PossessiveRepeatingParserExtension.plus operator. Thelimit
is not consumed. -
plusLazy(
Parser< void> limit) → Parser<List< R> > -
Available on Parser<
Returns a parser that parses the receiver one or more times until it reaches aR> , provided by the LazyRepeatingParserExtension extensionlimit
. This is a lazy non-blind implementation of the PossessiveRepeatingParserExtension.plus operator. Thelimit
is not consumed. -
plusSeparated<
S> (Parser< S> separator) → Parser<SeparatedList< R, S> > -
Available on Parser<
Returns a parser that consumes the receiver one or more times separated by theR> , provided by the SeparatedRepeatingParserExtension extensionseparator
parser. The resulting parser returns a SeparatedList containing collections of both the elements of typeR
as well as the separators of typeS
. -
plusString(
[String? message]) → Parser< String> -
Available on Parser<
Returns a parser that accepts the receiver one or more times. The resulting parser returns the consumed input string.String> , provided by the RepeatingCharacterParserExtension extension -
repeat(
int min, [int? max]) → Parser< List< R> > -
Available on Parser<
Returns a parser that accepts the receiver betweenR> , provided by the PossessiveRepeatingParserExtension extensionmin
andmax
times. The resulting parser returns a list of the parse results of the receiver. -
repeatGreedy(
Parser< void> limit, int min, int max) → Parser<List< R> > -
Available on Parser<
Returns a parser that parses the receiver at leastR> , provided by the GreedyRepeatingParserExtension extensionmin
and at mostmax
times until it reaches alimit
. This is a greedy non-blind implementation of the PossessiveRepeatingParserExtension.repeat operator. Thelimit
is not consumed. -
repeatLazy(
Parser< void> limit, int min, int max) → Parser<List< R> > -
Available on Parser<
Returns a parser that parses the receiver at leastR> , provided by the LazyRepeatingParserExtension extensionmin
and at mostmax
times until it reaches alimit
. This is a lazy non-blind implementation of the PossessiveRepeatingParserExtension.repeat operator. Thelimit
is not consumed. -
repeatSeparated<
S> (Parser< S> separator, int min, int max) → Parser<SeparatedList< R, S> > -
Available on Parser<
Returns a parser that consumes the receiver betweenR> , provided by the SeparatedRepeatingParserExtension extensionmin
andmax
times separated by theseparator
parser. The resulting parser returns a SeparatedList containing collections of both the elements of typeR
as well as the separators of typeS
. -
repeatString(
int min, [int? max, String? message]) → Parser< String> -
Available on Parser<
Returns a parser that accepts the receiver betweenString> , provided by the RepeatingCharacterParserExtension extensionmin
andmax
times. The resulting parser returns the consumed input string. -
replace(
Parser source, Parser target) → void -
Changes the receiver by replacing
source
withtarget
. Does nothing ifsource
does not exist in Parser.children. -
separatedBy<
R> (Parser separator, {bool includeSeparators = true, bool optionalSeparatorAtStart = false, bool optionalSeparatorAtEnd = false}) → Parser< List< R> > -
Available on Parser<
Returns a parser that consumes the receiver one or more times separated by theT> , provided by the SeparatedByParserExtension extensionseparator
parser. The resulting parser returns a flat list of the parse results of the receiver interleaved with the parse result of the separator parser. The type parameterR
defines the type of the returned list. -
seq(
Parser other) → Parser< List> -
Available on Parser, provided by the SequenceParserExtension extension
Returns a parser that accepts the receiver followed byother
. The resulting parser returns a list of the parse result of the receiver followed by the parse result ofother
. Calling this method on an existing sequence code does not nest this sequence into a new one, but instead augments the existing sequence withother
. -
settable(
) → SettableParser< R> -
Available on Parser<
Returns a parser that points to the receiver, but can be changed to point to something else at a later point in time.R> , provided by the SettableParserExtension extension -
skip(
{Parser< void> ? before, Parser<void> ? after}) → Parser<R> -
Available on Parser<
Returns a parser that consumes inputR> , provided by the SkipParserExtension extensionbefore
andafter
the receiver, but discards the parse results ofbefore
andafter
and only returns the result of the receiver. -
star(
) → Parser< List< R> > -
Available on Parser<
Returns a parser that accepts the receiver zero or more times. The resulting parser returns a list of the parse results of the receiver.R> , provided by the PossessiveRepeatingParserExtension extension -
starGreedy(
Parser< void> limit) → Parser<List< R> > -
Available on Parser<
Returns a parser that parses the receiver zero or more times until it reaches aR> , provided by the GreedyRepeatingParserExtension extensionlimit
. This is a greedy non-blind implementation of the PossessiveRepeatingParserExtension.star operator. Thelimit
is not consumed. -
starLazy(
Parser< void> limit) → Parser<List< R> > -
Available on Parser<
Returns a parser that parses the receiver zero or more times until it reaches aR> , provided by the LazyRepeatingParserExtension extensionlimit
. This is a lazy non-blind implementation of the PossessiveRepeatingParserExtension.star operator. Thelimit
is not consumed. -
starSeparated<
S> (Parser< S> separator) → Parser<SeparatedList< R, S> > -
Available on Parser<
Returns a parser that consumes the receiver zero or more times separated by theR> , provided by the SeparatedRepeatingParserExtension extensionseparator
parser. The resulting parser returns a SeparatedList containing collections of both the elements of typeR
as well as the separators of typeS
. -
starString(
[String? message]) → Parser< String> -
Available on Parser<
Returns a parser that accepts the receiver zero or more times. The resulting parser returns the consumed input string.String> , provided by the RepeatingCharacterParserExtension extension -
times(
int count) → Parser< List< R> > -
Available on Parser<
Returns a parser that accepts the receiver exactlyR> , provided by the PossessiveRepeatingParserExtension extensioncount
times. The resulting parser returns a list of the parse results of the receiver. -
timesSeparated<
S> (Parser< S> separator, int count) → Parser<SeparatedList< R, S> > -
Available on Parser<
Returns a parser that consumes the receiverR> , provided by the SeparatedRepeatingParserExtension extensioncount
times separated by theseparator
parser. The resulting parser returns a SeparatedList containing collections of both the elements of typeR
as well as the separators of typeS
. -
timesString(
int count, [String? message]) → Parser< String> -
Available on Parser<
Returns a parser that accepts the receiver exactlyString> , provided by the RepeatingCharacterParserExtension extensioncount
times. The resulting parser returns the consumed input string. -
token(
) → Parser< Token< R> > -
Available on Parser<
Returns a parser that returns a Token. The token carries the parsed value of the receiver Token.value, as well as the consumed input Token.input from Token.start to Token.stop of the input being parsed.R> , provided by the TokenParserExtension extension -
toPattern(
) → Pattern -
Available on Parser<
Converts this Parser into a Pattern for basic searches within strings.R> , provided by the PatternParserExtension extension -
toString(
) → String -
A string representation of this object.
override
-
trim(
[Parser< void> ? left, Parser<void> ? right]) → Parser<R> -
Available on Parser<
Returns a parser that consumes input before and after the receiver, discards the excess input and only returns the result of the receiver. The optional arguments are parsers that consume the excess input. By defaultR> , provided by the TrimmingParserExtension extensionwhitespace()
is used. Up to two arguments can be provided to have different parsers on theleft
andright
side. -
where(
Predicate< R> predicate, {String? message, FailureFactory<R> ? factory, Callback<R, String> ? failureMessage, Callback<R, int> ? failurePosition, FailureFactory<R> ? failureFactory}) → Parser<R> -
Available on Parser<
Returns a parser that evaluates theR> , provided by the WhereParserExtension extensionpredicate
with the successful parse result. If the predicate returnstrue
the parser proceeds with the parse result, otherwise a parse failure is created using the optionally specifiedfactory
callback, the providedmessage
, or otherwise an automatically created error message.
Operators
-
operator &(
Parser other) → Parser< List> -
Available on Parser, provided by the SequenceParserExtension extension
Convenience operator returning a parser that accepts the receiver followed byother
. See seq for details. -
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator |(
Parser other) → ChoiceParser -
Available on Parser, provided by the ChoiceParserExtension extension
Convenience operator returning a parser that accepts the receiver orother
. See or for details.