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

Concise view

Value members

Concrete methods

def apply[A, B](fixity: Fixity)(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.

Attributes

A

the base type consumed by the operators.

B

the type produced/consumed by the operators.

fixity

the fixity of the operators described.

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

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