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

    Constructors
    Constructor
    Description
    SLEvalRootNode(SLLanguage language, com.oracle.truffle.api.RootCallTarget rootFunction, Map<com.oracle.truffle.api.strings.TruffleString,com.oracle.truffle.api.RootCallTarget> functions)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    execute(com.oracle.truffle.api.frame.VirtualFrame frame)
     
     
    static com.oracle.truffle.api.strings.TruffleString
     
    protected boolean
     
    boolean
     
     

    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, translateStackTraceElement

    Methods inherited from class com.oracle.truffle.api.nodes.ExecutableNode

    getLanguage, getLanguageInfo

    Methods 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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 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:
      isInternal in class com.oracle.truffle.api.nodes.RootNode
    • isInstrumentable

      protected boolean isInstrumentable()
      Overrides:
      isInstrumentable in class com.oracle.truffle.api.nodes.RootNode
    • getName

      public String getName()
      Overrides:
      getName in class com.oracle.truffle.api.nodes.RootNode
    • getTSName

      public static com.oracle.truffle.api.strings.TruffleString getTSName()
    • toString

      public String toString()
      Overrides:
      toString in class com.oracle.truffle.api.nodes.Node
    • execute

      public Object execute(com.oracle.truffle.api.frame.VirtualFrame frame)
      Specified by:
      execute in class com.oracle.truffle.api.nodes.RootNode