package interpreter
- Alphabetic
- Public
- All
Type Members
-
sealed
trait
CombinatorInfo extends AnyRef
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.
-
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
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.
-
case class
InhabitationResult[T](grammar: TreeGrammar, target: Type, resultInterpreter: (Tree) ⇒ T) extends Product with Serializable
Encapsulates an inhabitation result.
Encapsulates an inhabitation result.
- T
the native scala type of the requested inhabitants.
- grammar
a tree grammar representation of all inhabitants.
- target
the inhabitation request target type.
- resultInterpreter
an interpreter to turn inhabitants into scala objects.
-
class
NativeTaxonomyBuilder extends AnyRef
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. -
trait
ReflectedRepository[R] extends AnyRef
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.
-
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
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).
-
class
combinator extends Annotation with StaticAnnotation
Marker annotation to find combinators via reflection.
Value Members
-
object
ReflectedRepository
Helper object to construct a ReflectedRepository.