ImplicitConversions

This object contains implicit conversions that come in handy when using the ^^ combinator.

This object contains implicit conversions that come in handy when using the ^^ combinator.

Refer to scala.util.parsing.combinator.Parsers to construct an AST from the concrete syntax.

The reason for this is that the sequential composition combinator (~) combines its constituents into a ~. When several ~s are combined, this results in nested ~s (to the left). The flatten* coercions makes it easy to apply an n-argument function to a nested ~ of depth n-1

The headOptionTailToFunList converts a function that takes a List[A] to a function that accepts a ~[A, Option[List[A]]] (this happens when parsing something of the following shape: p ~ opt("." ~ repsep(p, ".")) -- where p is a parser that yields an A).

class Object
trait Matchable
class Any

Implicits

Implicits

implicit def flatten2[A, B, C](f: (A, B) => C): A `<none>` B => C
implicit def flatten3[A, B, C, D](f: (A, B, C) => D): A `<none>` B `<none>` C => D
implicit def flatten4[A, B, C, D, E](f: (A, B, C, D) => E): A `<none>` B `<none>` C `<none>` D => E
implicit def flatten5[A, B, C, D, E, F](f: (A, B, C, D, E) => F): A `<none>` B `<none>` C `<none>` D `<none>` E => F
implicit def headOptionTailToFunList[A, T](f: List[A] => T): A `<none>` Option[List[A]] => T