# Package com.oracle.truffle.api.dsl

Interface Summary
NodeFactory<T>: Enables the dynamic creation of generated nodes.

Exception Summary
UnsupportedSpecializationException: Thrown by the generated code of Truffle-DSL if no compatible Specialization could be found for the provided values.

Annotation Types Summary
CreateCast: Specifies a factory method that creates a `Node` which is used to cast this child.
ExpectError: This annotation is internally known by the dsl processor and used to expect errors for testing purposes.
Fallback: A method annotated with `Fallback` is treated as a `Specialization` that implicitly links all the guards of all other declared `Specialization` annotated methods of the operation in a negated form.
GeneratedBy: Marks a type as being generated based on another class or method.
ImplicitCast
Implies
ImportGuards: Imports all public static methods usable as guards for `Specialization` annotations to the current class.
NodeAssumptions: Declares one or multiple assumptions for use inside a source code generation enabled node.
NodeChild: A `NodeChild` element defines an executable child for the enclosing `Node`.
NodeChildren
NodeField: A `NodeField` element defines a field for the generated `Node`.
NodeFields: A `NodeFields` element defines a field for the generated `Node`.
ShortCircuit
Specialization
TypeCast
TypeCheck: Provides a way to define a custom type check for a defined type.
TypeSystem: Each `Node` has one `TypeSystem` at its root to define the types that can be used throughout the system.
TypeSystemReference: References a `TypeSystem` on a node.