Package com.oracle.truffle.sl.nodes
Class SLEvalRootNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.ExecutableNode
com.oracle.truffle.api.nodes.RootNode
com.oracle.truffle.sl.nodes.SLEvalRootNode
- All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface,Cloneable
public final class SLEvalRootNode
extends com.oracle.truffle.api.nodes.RootNode
This class performs two additional tasks:
- Lazily registration of functions on first execution. This fulfills the semantics of "evaluating" source code in SL.
- Conversion of arguments to types understood by SL. The SL source code can be evaluated from a different language, i.e., the caller can be a node from a different language that uses types not understood by SL.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.oracle.truffle.api.nodes.Node
com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.Children -
Constructor Summary
ConstructorsConstructorDescriptionSLEvalRootNode(SLLanguage language, com.oracle.truffle.api.RootCallTarget rootFunction, Map<com.oracle.truffle.api.strings.TruffleString, com.oracle.truffle.api.RootCallTarget> functions) -
Method Summary
Methods inherited from class com.oracle.truffle.api.nodes.RootNode
cloneUninitialized, computeSize, copy, countsTowardsStackTraceLimit, createConstantNode, findAsynchronousFrames, findBytecodeIndex, findInstrumentableCallNode, getCallTarget, getFrameDescriptor, getParentFrameDescriptor, getQualifiedName, isCaptureFramesForTrace, isCaptureFramesForTrace, isCaptureFramesForTrace, isCloneUninitializedSupported, isCloningAllowed, isSameFrame, isTrivial, prepareForAOT, prepareForInstrumentation, translateStackTraceElementMethods inherited from class com.oracle.truffle.api.nodes.ExecutableNode
getLanguage, getLanguageInfoMethods inherited from class com.oracle.truffle.api.nodes.Node
accept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, onReplace, replace, replace, reportPolymorphicSpecialize, reportReplace
-
Constructor Details
-
SLEvalRootNode
public SLEvalRootNode(SLLanguage language, com.oracle.truffle.api.RootCallTarget rootFunction, Map<com.oracle.truffle.api.strings.TruffleString, com.oracle.truffle.api.RootCallTarget> functions)
-
-
Method Details
-
isInternal
public boolean isInternal()- Overrides:
isInternalin classcom.oracle.truffle.api.nodes.RootNode
-
isInstrumentable
protected boolean isInstrumentable()- Overrides:
isInstrumentablein classcom.oracle.truffle.api.nodes.RootNode
-
getName
- Overrides:
getNamein classcom.oracle.truffle.api.nodes.RootNode
-
getTSName
public static com.oracle.truffle.api.strings.TruffleString getTSName() -
toString
- Overrides:
toStringin classcom.oracle.truffle.api.nodes.Node
-
execute
- Specified by:
executein classcom.oracle.truffle.api.nodes.RootNode
-