RuleDSLCombinators

org.parboiled2.RuleDSLCombinators

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class RuleDSL
class Parser

Members list

Type members

Classlikes

sealed trait NTimes

Attributes

Supertypes
class Object
trait Matchable
class Any
trait WithSeparatedBy[I <: HList, O <: HList]

Attributes

Supertypes
class Object
trait Matchable
class Any

Value members

Concrete methods

def &(r: Rule[_, _]): Rule0

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.

Attributes

def atomic[I <: HList, O <: HList](r: Rule[I, O]): Rule[I, O]

Marks a rule as "undividable" from an error reporting perspective. The parser will never report errors inside of the marked rule. Rather, if the rule mismatches, the error will be reported at the very beginning of the attempted rule match.

Marks a rule as "undividable" from an error reporting perspective. The parser will never report errors inside of the marked rule. Rather, if the rule mismatches, the error will be reported at the very beginning of the attempted rule match.

Attributes

def oneOrMore[I <: HList, O <: HList](r: Rule[I, O])(implicit l: Lifter[Seq, I, O]): Rule[In, StrictOut] & Repeated

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 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

Attributes

def optional[I <: HList, O <: HList](r: Rule[I, O])(implicit l: Lifter[Option, I, O]): Rule[In, OptionalOut]

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

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

Attributes

def quiet[I <: HList, O <: HList](r: Rule[I, O]): Rule[I, O]

Marks a rule as "quiet" from an error reporting perspective. Quiet rules only show up in error rule traces if no "unquiet" rules match up to the error location. This marker frequently used for low-level syntax rules (like whitespace or comments) that might be matched essentially everywhere and are therefore not helpful when appearing in the "expected" set of an error report.

Marks a rule as "quiet" from an error reporting perspective. Quiet rules only show up in error rule traces if no "unquiet" rules match up to the error location. This marker frequently used for low-level syntax rules (like whitespace or comments) that might be matched essentially everywhere and are therefore not helpful when appearing in the "expected" set of an error report.

Attributes

def runSubParser[I <: HList, O <: HList](f: ParserInput => Rule[I, O]): Rule[I, O]

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.

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.

Attributes

def zeroOrMore[I <: HList, O <: HList](r: Rule[I, O])(implicit l: Lifter[Seq, I, O]): Rule[In, OptionalOut] & Repeated

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

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

Attributes

Implicits

Implicits

implicit def int2NTimes(i: Int): NTimes
implicit def range2NTimes(range: Range): NTimes
implicit def rule2WithSeparatedBy[I <: HList, O <: HList](r: Rule[I, O] & Repeated): WithSeparatedBy[I, O]