Class

io.chymyst.jc

CommonMacros

Related Doc: package jc

Permalink

class CommonMacros extends AnyRef

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

Instance Constructors

  1. new CommonMacros(c: Context)

    Permalink

Type Members

  1. final case class ConstOutputPatternF(v: scala.reflect.macros.Universe.Tree) extends OutputPatternFlag with Product with Serializable

    Permalink
  2. final case class ConstantPatternF(v: scala.reflect.macros.Universe.Tree) extends InputPatternFlag with Product with Serializable

    Permalink

    The pattern represents a constant, which can be a literal constant such as "abc" or a compound type such as (2, 3) or (Some(2), 3, 4).

    The pattern represents a constant, which can be a literal constant such as "abc" or a compound type such as (2, 3) or (Some(2), 3, 4). The value v represents a value of the [T] type of M[T] or B[T,R].

  3. sealed trait InputPatternFlag extends AnyRef

    Permalink

    Describes the pattern matcher for input molecules.

    Describes the pattern matcher for input molecules. Possible values: WildcardF for case a(_) ⇒ SimpleVarF for case a(x) ⇒ ConstantPatternF for case a(1) ⇒ WrongReplyVarF: the reply matcher for blocking molecules is not a simple variable, e.g. case f(_, _) instead of case f(_, r) OtherInputPatternF: none of the above (could be a case class or a general unapply expression)

  4. final case class OtherInputPatternF(matcher: scala.reflect.macros.Universe.Tree, guard: Option[scala.reflect.macros.Universe.Tree], vars: List[scala.reflect.macros.Universe.Ident]) extends InputPatternFlag with Product with Serializable

    Permalink

    Nontrivial pattern matching expression that could contain unapply, destructuring, and pattern @ variables.

    Nontrivial pattern matching expression that could contain unapply, destructuring, and pattern @ variables. For instance, if c is a molecule with values of type (Int, Option[Int]) then and example of nontrivial pattern match could be c( z@(x, Some(y)) ). In this example, we will have vars = List("z", "x", "y") and matcher = { case z@(x, Some(y)) => (z, x, y) }.

    matcher

    Tree of a partial function of type Any => Any.

    guard

    None if the pattern is irrefutable; Some(guard expression tree) if the pattern is not irrefutable and potentially requires a guard condition.

    vars

    List of pattern variables in the order of their appearance in the syntax tree.

  5. sealed trait OutputPatternFlag extends AnyRef

    Permalink

    Describes the pattern matcher for output molecules.

    Describes the pattern matcher for output molecules. This flag is used only within the macro code and is not exported to compiled code. The corresponding value of type OutputPatternType is exported to compiled code of the Reaction instance.

    Possible values: ConstOutputPatternF(x): a(123) or a(Some(4)), etc. OtherOutputPatternF: a(x), a(x+y), or any other kind of expression. EmptyOutputPatternF: no argument given, i.e. bare molecule emitter value or reply emitter value

  6. final case class ReplyVarF(replyVar: scala.reflect.macros.Universe.Ident) extends InputPatternFlag with Product with Serializable

    Permalink

    Represents a reply pattern consisting of a simple variable.

    Represents a reply pattern consisting of a simple variable.

    replyVar

    The Ident of a reply pattern variable.

  7. final case class SimpleVarF(v: scala.reflect.macros.Universe.Ident, binder: scala.reflect.macros.Universe.Tree, cond: Option[scala.reflect.macros.Universe.Tree]) extends InputPatternFlag with Product with Serializable

    Permalink

    Represents a pattern match with a simple pattern variable, such as a(x)

    Represents a pattern match with a simple pattern variable, such as a(x)

    v

    The Ident of the pattern variable.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object EmptyOutputPatternF extends OutputPatternFlag with Product with Serializable

    Permalink
  5. object OtherOutputPatternF extends OutputPatternFlag with Product with Serializable

    Permalink
  6. object WildcardF extends InputPatternFlag with Product with Serializable

    Permalink
  7. object WrongReplyVarF extends InputPatternFlag with Product with Serializable

    Permalink

    Represents an error situation.

    Represents an error situation. The reply pseudo-molecule must be bound to a simple variable, but we found another pattern instead.

  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. val c: Context

    Permalink
  10. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  15. def getEnclosingName: String

    Permalink

    Detect the enclosing name of an expression.

    Detect the enclosing name of an expression. For example: val x = "name is " + getName will set x to the string "name is x".

    returns

    String that represents the name of the enclosing value.

  16. def getNameImpl: scala.reflect.macros.Universe.Tree

    Permalink
  17. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  18. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  19. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  20. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  21. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  22. def rawTreeImpl(x: scala.reflect.macros.blackbox.Context.Expr[Any]): scala.reflect.macros.Universe.Tree

    Permalink
  23. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  24. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  25. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped