Package

org.combinators.cls

interpreter

Permalink

package interpreter

Visibility
  1. Public
  2. All

Type Members

  1. sealed trait CombinatorInfo extends AnyRef

    Permalink

    Combinator information collected via reflection.

    Combinator information collected via reflection. Used to turn scala objects into combinators for BoundedCombinatoryLogic and to interpret inhabitatoin results back into call of their apply methods.

  2. case class DynamicCombinatorInfo[A](name: String, parameters: Option[Seq[scala.reflect.api.JavaUniverse.Type]], result: scala.reflect.api.JavaUniverse.Type, semanticType: Option[Type], instance: A, combinatorTypeTag: scala.reflect.api.JavaUniverse.WeakTypeTag[A], position: Array[StackTraceElement], uniqueNameTag: String = UUID.randomUUID().toString) extends CombinatorInfo with Product with Serializable

    Permalink

    Combinator information for a runtime generated object.

    Combinator information for a runtime generated object.

    instance

    the runtime instance of the reflected object.

    combinatorTypeTag

    reflected type information of the instance object.

    position

    a stack trace, indicating where the object was added to the repository.

    uniqueNameTag

    a unique name tag, which will be part of the name of the resulting combinator.

  3. case class InhabitationResult[T](rules: Set[Rule], target: Type, resultInterpreter: (Tree) ⇒ T) extends Product with Serializable

    Permalink

    Encapsulates an inhabitation result.

    Encapsulates an inhabitation result.

    T

    the native scala type of the requested inhabitants.

    rules

    a tree grammar rule representation of all inhabitants.

    target

    the inhabitation request target type.

    resultInterpreter

    an interpreter to turn inhabitants into scala objects.

  4. class NativeTaxonomyBuilder extends AnyRef

    Permalink

    Builds a taxonomy out of native Scala types using reflection.

    Builds a taxonomy out of native Scala types using reflection. If we add A and B, we have B in taxonomy(A) iff A <: B. Used by ReflectedRepository to automatically add subtype information, so you probably don't ever have to use this.

  5. trait ReflectedRepository[R] extends AnyRef

    Permalink

    A Bounded Combinatory Logic repository constructed from Scala code via reflection.

    A Bounded Combinatory Logic repository constructed from Scala code via reflection.

    Use [ReflectedRepository.apply] of the companion object to obtain a new instance.

    R

    the Scala type of the repository.

  6. case class StaticCombinatorInfo(name: String, parameters: Option[Seq[scala.reflect.api.JavaUniverse.Type]], result: scala.reflect.api.JavaUniverse.Type, semanticType: Option[Type], fullSignature: scala.reflect.api.JavaUniverse.Type) extends CombinatorInfo with Product with Serializable

    Permalink

    Combinator information collected for a compile time static singleton object.

    Combinator information collected for a compile time static singleton object.

    fullSignature

    the full type signature of the reflected object (for debugging information).

  7. class combinator extends Annotation with StaticAnnotation

    Permalink

    Marker annotation to find combinators via reflection.

Value Members

  1. object ReflectedRepository

    Permalink

    Helper object to construct a ReflectedRepository.

Ungrouped