Rule

org.parboiled2.Rule
See theRule companion class
object Rule extends Rule[HNil, HNil]

THIS IS NOT PUBLIC API and might become hidden in future. Use only if you know what you are doing!

Attributes

Companion
class
Graph
Supertypes
class Rule[HNil, HNil]
trait RuleX
class Object
trait Matchable
class Any
Self type
Rule.type

Members list

Value members

Inherited methods

def *(separator: Rule0)(implicit l: Lifter[Seq, HNil, HNil]): Rule[In, OptionalOut]

Postfix shortcut for zeroOrMore(...).separatedBy(...).

Postfix shortcut for zeroOrMore(...).separatedBy(...).

Attributes

Inherited from:
Rule
def *(implicit l: Lifter[Seq, HNil, HNil]): Rule[In, OptionalOut] & Repeated

Postfix shortcut for zeroOrMore.

Postfix shortcut for zeroOrMore.

Attributes

Inherited from:
Rule
def +(separator: Rule0)(implicit l: Lifter[Seq, HNil, HNil]): Rule[In, StrictOut]

Postfix shortcut for oneOrMore(...).separatedBy(...).

Postfix shortcut for oneOrMore(...).separatedBy(...).

Attributes

Inherited from:
Rule
def +(implicit l: Lifter[Seq, HNil, HNil]): Rule[In, StrictOut] & Repeated

Postfix shortcut for oneOrMore.

Postfix shortcut for oneOrMore.

Attributes

Inherited from:
Rule
def ?(implicit l: Lifter[Option, HNil, HNil]): Rule[In, OptionalOut]

Postfix shortcut for optional.

Postfix shortcut for optional.

Attributes

Inherited from:
Rule
def named(name: String): Rule.this.type

Attaches the given explicit name to this rule.

Attaches the given explicit name to this rule.

Attributes

Inherited from:
Rule
def unary_!: Rule0

Creates a "negative syntactic predicate", i.e. a rule that matches only if this rule mismatches and vice versa. The resulting rule doesn't cause the parser to make any progress (i.e. match any input) and also clears out all effects that the underlying rule might have had on the value stack.

Creates a "negative syntactic predicate", i.e. a rule that matches only if this rule mismatches and vice versa. The resulting rule doesn't cause the parser to make any progress (i.e. match any input) and also clears out all effects that the underlying rule might have had on the value stack.

Attributes

Inherited from:
Rule
def |[I2 <: HNil, O2 >: HNil <: HList](that: Rule[I2, O2]): Rule[I2, O2]

Combines this rule with the given other one in a way that the resulting rule matches if this rule matches or the other one matches. If this rule doesn't match the parser is reset and the given alternative tried. This operators therefore implements the "ordered choice' PEG combinator.

Combines this rule with the given other one in a way that the resulting rule matches if this rule matches or the other one matches. If this rule doesn't match the parser is reset and the given alternative tried. This operators therefore implements the "ordered choice' PEG combinator.

Attributes

Inherited from:
Rule
def ~[I2 <: HList, O2 <: HList](that: Rule[I2, O2])(implicit i: TailSwitch[I2, HNil, HNil], o: TailSwitch[HNil, I2, O2]): Rule[Out, Out]

Concatenates this rule with the given other one. The resulting rule type is computed on a type-level. Here is an illustration (using an abbreviated HList notation): Rule[, A] ~ Rule[, B] = Rule[, A:B] Rule[A:B:C, D:E:F] ~ Rule[F, G:H] = Rule[A:B:C, D:E:G:H] Rule[A, B:C] ~ Rule[D:B:C, E:F] = Rule[D:A, E:F]

Concatenates this rule with the given other one. The resulting rule type is computed on a type-level. Here is an illustration (using an abbreviated HList notation): Rule[, A] ~ Rule[, B] = Rule[, A:B] Rule[A:B:C, D:E:F] ~ Rule[F, G:H] = Rule[A:B:C, D:E:G:H] Rule[A, B:C] ~ Rule[D:B:C, E:F] = Rule[D:A, E:F]

Attributes

Inherited from:
Rule
def ~!~[I2 <: HList, O2 <: HList](that: Rule[I2, O2])(implicit i: TailSwitch[I2, HNil, HNil], o: TailSwitch[HNil, I2, O2]): Rule[Out, Out]

Same as ~ but with "cut" semantics, meaning that the parser will never backtrack across this boundary. If the rule being concatenated doesn't match a parse error will be triggered immediately.

Same as ~ but with "cut" semantics, meaning that the parser will never backtrack across this boundary. If the rule being concatenated doesn't match a parse error will be triggered immediately.

Attributes

Inherited from:
Rule

Extensions

Inherited extensions

extension [L <: HList](inline rule: RuleN[L])
inline def run()(using scheme: DeliveryScheme[L]): Result

THIS IS NOT PUBLIC API and might become hidden in future. Use only if you know what you are doing!

THIS IS NOT PUBLIC API and might become hidden in future. Use only if you know what you are doing!

Attributes

Inherited from:
RuleRunnable (hidden)