Runs its inner rule but resets the parser (cursor and value stack) afterwards, succeeds only if its inner rule succeeded.
Runs its inner rule but resets the parser (cursor and value stack) afterwards, succeeds only if its inner rule succeeded.
Runs its inner rule until it fails, succeeds if its inner rule succeeded at least once.
Runs its inner rule until it fails, succeeds if its inner rule succeeded at least once. Resulting rule type is Rule0 if r == Rule0 Rule1[Seq[T]] if r == Rule1[T] Rule[I, O] if r == Rule[I, O <: I] // so called "reduction", which leaves the value stack unchanged on a type level
Runs its inner rule and succeeds even if the inner rule doesn't.
Runs its inner rule and succeeds even if the inner rule doesn't. Resulting rule type is Rule0 if r == Rule0 Rule1[Option[T]] if r == Rule1[T] Rule[I, O] if r == Rule[I, O <: I] // so called "reduction", which leaves the value stack unchanged on a type level
Allows creation of a sub parser and running of one of its rules as part of the current parsing process.
Allows creation of a sub parser and running of one of its rules as part of the current parsing process. The subparser will start parsing at the current input position and the outer parser (this parser) will continue where the sub-parser stopped.
Runs its inner rule until it fails, always succeeds.
Runs its inner rule until it fails, always succeeds. Resulting rule type is Rule0 if r == Rule0 Rule1[Seq[T]] if r == Rule1[T] Rule[I, O] if r == Rule[I, O <: I] // so called "reduction", which leaves the value stack unchanged on a type level