GOps

parsley.expr.GOps
object GOps

This helper object builds values of Ops[A, B], for fully heterogeneous precedence parsing.

Attributes

Since

2.2.0

Source
SmartOps.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
GOps.type

Members list

Value members

Concrete methods

def apply[A, B](fixity: Fixity)(op0: Parsley[Op[A, B]], ops: Parsley[Op[A, B]]*)(implicit wrap: A => B): Ops[A, B]

This function builds an Ops object representing many operators found at the same precedence level, with a given fixity.

This function builds an Ops object representing many operators found at the same precedence level, with a given fixity.

The operators found on the level constructed by this function are heterogeneous: the type of the level below may vary from the types of the values produced at this level. To make this work, a wrap function must be provided that can transform the values from the layer below into the types generated by this layer.

Using path-dependent typing, the given fixity describes the shape of the operators expected. For more information see the Parsley wiki.

Type parameters

A

the base type consumed by the operators.

B

the type produced/consumed by the operators.

Value parameters

fixity

the fixity of the operators described.

op0

The first operator.

ops

The operators themselves, provided variadically.

wrap

the function which should be used to wrap up a value of type A when required (this will be at right of a left-assoc chain, left of a right-assoc chain, or the root of a prefix/postfix chain).

Attributes

See also
Since

2.2.0

Note

currently a bug in scaladoc incorrect displays this functions type, it should be: fixity.Op[A, B], NOT Op[A, B].

Source
SmartOps.scala