object ExpressionParser

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ExpressionParser
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed trait Assoc extends AnyRef

    Denotes the associativity of an operator, either AssocLeft or AssocRight.

  2. sealed trait Fixity extends AnyRef

    Denotes the fixity of an operator, either Prefix or Postfix.

  3. case class Lefts[-A, B](ops: Parsley[(B, A) ⇒ B]*)(implicit wrap: (A) ⇒ B) extends Ops[A, B] with Product with Serializable
  4. final case class Level[-A, B, +C](ops: Ops[A, B], lvls: Levels[B, C]) extends Levels[A, C] with Product with Serializable

    This represents a single new level of the hierarchy, with stronger precedence than its tail.

    This represents a single new level of the hierarchy, with stronger precedence than its tail.

    A

    The base type accepted by this layer

    B

    The intermediate type that will be provided to the next layer

    C

    The type of structure produced by the next layers

    ops

    The operators accepted at this level

    lvls

    The next, weaker, levels in the precedence table

    returns

    A larger precedence table transforming atoms of type A into a structure of type C.

  5. implicit class LevelBuilder[B, +C] extends AnyRef
  6. sealed trait Levels[-A, +B] extends AnyRef

    For more complex expression parser types Levels can be used to describe the precedence table whilst preserving the intermediate structure between each level.

    For more complex expression parser types Levels can be used to describe the precedence table whilst preserving the intermediate structure between each level.

    A

    The base type accepted by this list of levels

    B

    The type of structure produced by the list of levels

  7. type MonoOps[A] = Ops[A, A]
  8. sealed trait Ops[-A, B] extends AnyRef

    A list of operators on the same precedence level.

    A list of operators on the same precedence level. Note operators of different fixities cannot mix on the same level of indentation. Either Lefts which is a list of infix left-assocative operators, Rights which is a list of infix right-associative operators, Prefixes which is a list of prefixing unary operators or Postfixes a list of postfixing unary operators.

    Each list of operators will also require a wrapping function of type A => B. This allows it to convert values of type A into values of type B when there is no more operation to perform.

    A

    The type of the layer below

    B

    The type of this layer

  9. case class Postfixes[-A, B](ops: Parsley[(B) ⇒ B]*)(implicit wrap: (A) ⇒ B) extends Ops[A, B] with Product with Serializable
  10. case class Prefixes[-A, B](ops: Parsley[(B) ⇒ B]*)(implicit wrap: (A) ⇒ B) extends Ops[A, B] with Product with Serializable
  11. case class Rights[-A, B](ops: Parsley[(A, B) ⇒ B]*)(implicit wrap: (A) ⇒ B) extends Ops[A, B] with Product with Serializable

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply[A, B](atom: ⇒ Parsley[A], table: Levels[A, B]): ExpressionParser[A, B]

    This is used to build an expression parser for a multi-layered expression tree type.

    This is used to build an expression parser for a multi-layered expression tree type. Levels are specified from strongest to weakest.

    A

    The type of the atomic unit of the expression

    B

    The type of the resulting parse tree (outermost operations)

    atom

    The atomic unit of the expression

    table

    A table of operators. Table is ordered highest precedence to lowest precedence. See Levels and it's subtypes for a description of how the types work.

    returns

    A parser for the described expression language

  5. def apply[A](atom: ⇒ Parsley[A], table: MonoOps[A]*): ExpressionParser[A, A]

    This is used to build an expression parser for a monolithic type.

    This is used to build an expression parser for a monolithic type. Levels are specified from strongest to weakest.

    A

    The type of the monolithic tree

    atom

    The atomic unit of the expression, for instance numbers/variables

    table

    A table of operators. Table is ordered highest precedence to lowest precedence. Each list in the table corresponds to operators of the same precedence level.

    returns

    A parser for the described expression language

  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  22. object AssocLeft extends Assoc with Product with Serializable
  23. object AssocRight extends Assoc with Product with Serializable
  24. object Infixes
  25. object Levels
  26. object Postfix extends Fixity with Product with Serializable
  27. object Prefix extends Fixity with Product with Serializable
  28. object Unaries

Inherited from AnyRef

Inherited from Any

Ungrouped