Package org.pkl.core.runtime
Class VmUtils
- java.lang.Object
-
- org.pkl.core.runtime.VmUtils
-
public final class VmUtils extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringREPL_TEXTstatic java.net.URIREPL_TEXT_URIstatic java.lang.ObjectSKIP_TYPECHECK_MARKER
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidappendToBuilder(java.lang.StringBuilder builder, java.lang.String string)static java.lang.StringbuilderToString(java.lang.StringBuilder builder)static voidcheckIsInstantiable(VmClass parentClass, @Nullable com.oracle.truffle.api.nodes.Node parentNode)static voidcheckPositive(long n)static intcodePointOffsetFromEndToCharOffset(java.lang.String string, long codePointOffset)static intcodePointOffsetToCharOffset(java.lang.String string, long codePointOffset)static intcodePointOffsetToCharOffset(java.lang.String string, long codePointOffset, int startIndex)static java.util.regex.PatterncompilePattern(java.lang.String pattern, com.oracle.truffle.api.nodes.Node location)static intcountLeadingWhitespace(java.lang.String str)static java.lang.StringBuildercreateBuilder()static org.graalvm.polyglot.ContextcreateContext(java.lang.Runnable initializer)static java.text.DecimalFormatcreateDecimalFormat(int fractionDigits)static com.oracle.truffle.api.frame.MaterializedFramecreateEmptyMaterializedFrame()static ObjectMembercreateLocalObjectProperty(VmLanguage language, com.oracle.truffle.api.source.SourceSection sourceSection, com.oracle.truffle.api.source.SourceSection headerSection, Identifier propertyName, java.lang.String qualifiedName, com.oracle.truffle.api.frame.FrameDescriptor descriptor, int modifiers, ExpressionNode bodyNode, @Nullable UnresolvedTypeNode typeNode)static ObjectMembercreateObjectProperty(VmLanguage language, com.oracle.truffle.api.source.SourceSection sourceSection, com.oracle.truffle.api.source.SourceSection headerSection, Identifier propertyName, java.lang.String qualifiedName, com.oracle.truffle.api.frame.FrameDescriptor descriptor, int modifiers, ExpressionNode bodyNode, @Nullable PropertyTypeNode typeNode)static com.oracle.truffle.api.source.SourcecreateSource(ModuleKey moduleKey, java.lang.String text)static StackFramecreateStackFrame(com.oracle.truffle.api.source.SourceSection section, @Nullable java.lang.String memberName)static ObjectMembercreateSyntheticObjectElement(java.lang.String qualifiedName, java.lang.Object constantValue)Creates a constant object element that has no corresponding definition in Pkl code.static ObjectMembercreateSyntheticObjectEntry(java.lang.String qualifiedName, java.lang.Object constantValue)Creates a constant object entry that has no corresponding definition in Pkl code.static ObjectMembercreateSyntheticObjectProperty(@Nullable Identifier identifier, java.lang.String qualifiedName, java.lang.Object constantValue)Creates a constant object property that has no corresponding definition in Pkl code.static ExpressionNodecreateThisNode(com.oracle.truffle.api.source.SourceSection sourceSection, boolean isCustomThisScope)static java.lang.ObjectdoReadMember(VmObjectLike receiver, VmObjectLike owner, java.lang.Object memberKey, ObjectMember member)Before calling this method, always try `VmObject.getCachedValue()`.static java.lang.ObjectdoReadMember(VmObjectLike receiver, VmObjectLike owner, java.lang.Object memberKey, ObjectMember member, boolean checkType, com.oracle.truffle.api.nodes.IndirectCallNode callNode)Before calling this method, always try `VmObject.getCachedValue()`.static java.util.List<VmTyped>evaluateAnnotations(com.oracle.truffle.api.frame.VirtualFrame frame, ExpressionNode[] annotationNodes)static voidevaluateAnnotations(com.oracle.truffle.api.frame.VirtualFrame frame, ExpressionNode[] annotationNodes, java.util.List<VmTyped> result)static java.lang.ObjectevaluateExpression(VmTyped module, java.lang.String expression, SecurityManager securityManager, ModuleResolver moduleResolver)static java.util.List<PObject>exportAnnotations(java.util.List<VmTyped> annotations)static voidexportAnnotations(java.util.List<VmTyped> annotations, java.util.List<PObject> result)static @Nullable java.lang.StringexportDocComment(@Nullable com.oracle.truffle.api.source.SourceSection docComment)static intfindAuxiliarySlot(com.oracle.truffle.api.frame.VirtualFrame frame, java.lang.Object identifier)static @Nullable ObjectMemberfindMember(VmObjectLike receiver, java.lang.Object memberKey)static intfindSlot(com.oracle.truffle.api.frame.VirtualFrame frame, java.lang.Object identifier)static VmClassgetClass(java.lang.Object value)static java.lang.StringgetConfigValue(com.oracle.truffle.api.TruffleLanguage.Env env, java.lang.String name, java.lang.String defaultValue)static java.lang.StringgetDisplayUri(com.oracle.truffle.api.source.SourceSection section, StackFrameTransformer transformer)static java.lang.StringgetDisplayUri(java.net.URI moduleUri, StackFrameTransformer transformer)static <K,V>
KgetKey(java.util.Map.Entry<K,V> entry)static java.lang.ObjectgetMemberKey(com.oracle.truffle.api.frame.Frame frame)Returns a `ObjectMember`'s key while executing the corresponding `MemberNode`.static ModuleInfogetModuleInfo(VmObjectLike composite)static com.oracle.truffle.api.nodes.NodeInfogetNodeInfo(com.oracle.truffle.api.nodes.Node node)static VmObjectLikegetObjectReceiver(com.oracle.truffle.api.frame.Frame frame)static VmObjectLikegetOwner(com.oracle.truffle.api.frame.Frame frame)Returns the owner of the currently executing code.static @Nullable VmObjectLikegetOwnerOrNull(com.oracle.truffle.api.frame.Frame frame)Returns the owner of the currently executing code.static java.lang.ObjectgetReceiver(com.oracle.truffle.api.frame.Frame frame)Returns the receiver of the message that was dispatched to the currently executing code.static @Nullable java.lang.ObjectgetReceiverOrNull(com.oracle.truffle.api.frame.Frame frame)Returns the receiver of the message that was dispatched to the currently executing code.static VmTypedgetTypedObjectReceiver(com.oracle.truffle.api.frame.Frame frame)static <K,V>
VgetValue(java.util.Map.Entry<K,V> entry)static java.lang.Stringindent(java.lang.String text, java.lang.String indent)static booleanisPcfRenderDirective(java.lang.Object value)static booleanisRenderDirective(java.lang.Object value)static booleanisRenderDirective(VmValue value)static com.oracle.truffle.api.source.SourceloadSource(ResolvedModuleKey resolvedKey)static org.organicdesign.fp.collections.ImMap<java.lang.Object,java.lang.Object>put(org.organicdesign.fp.collections.ImMap<java.lang.Object,java.lang.Object> map, java.lang.String key, java.lang.Object value)static java.lang.ObjectreadMember(VmObjectLike receiver, java.lang.Object memberKey)static java.lang.ObjectreadMember(VmObjectLike receiver, java.lang.Object memberKey, com.oracle.truffle.api.nodes.IndirectCallNode callNode)static @Nullable java.lang.ObjectreadMemberOrNull(VmObjectLike receiver, java.lang.Object memberKey)static @Nullable java.lang.ObjectreadMemberOrNull(VmObjectLike receiver, java.lang.Object memberKey, boolean checkType)static @Nullable java.lang.ObjectreadMemberOrNull(VmObjectLike receiver, java.lang.Object memberKey, boolean checkType, com.oracle.truffle.api.nodes.IndirectCallNode callNode)static @Nullable java.lang.ObjectreadMemberOrNull(VmObjectLike receiver, java.lang.Object memberKey, com.oracle.truffle.api.nodes.IndirectCallNode callNode)static java.lang.StringreadTextProperty(java.lang.Object receiver)static java.lang.StringreadTextProperty(VmObjectLike receiver)static TypeNode[]resolveParameterTypes(com.oracle.truffle.api.frame.VirtualFrame frame, com.oracle.truffle.api.frame.FrameDescriptor descriptor, @Nullable UnresolvedTypeNode[] parameterTypeNodes)static VmExceptiontoVmException(LexParseException e, com.oracle.truffle.api.source.Source source, java.lang.String moduleName)static VmExceptiontoVmException(LexParseException e, java.lang.String text, java.net.URI moduleUri, java.lang.String moduleName)static com.oracle.truffle.api.source.SourceSectionunavailableSourceSection()
-
-
-
Field Detail
-
SKIP_TYPECHECK_MARKER
public static final java.lang.Object SKIP_TYPECHECK_MARKER
-
REPL_TEXT
public static final java.lang.String REPL_TEXT
- See Also:
- Constant Field Values
-
REPL_TEXT_URI
public static final java.net.URI REPL_TEXT_URI
-
-
Method Detail
-
createEmptyMaterializedFrame
public static com.oracle.truffle.api.frame.MaterializedFrame createEmptyMaterializedFrame()
-
createContext
public static org.graalvm.polyglot.Context createContext(java.lang.Runnable initializer)
-
countLeadingWhitespace
public static int countLeadingWhitespace(java.lang.String str)
-
indent
public static java.lang.String indent(java.lang.String text, java.lang.String indent)
-
getReceiverOrNull
public static @Nullable java.lang.Object getReceiverOrNull(com.oracle.truffle.api.frame.Frame frame)
Returns the receiver of the message that was dispatched to the currently executing code.
-
getReceiver
public static java.lang.Object getReceiver(com.oracle.truffle.api.frame.Frame frame)
Returns the receiver of the message that was dispatched to the currently executing code.
-
getObjectReceiver
public static VmObjectLike getObjectReceiver(com.oracle.truffle.api.frame.Frame frame)
-
getTypedObjectReceiver
public static VmTyped getTypedObjectReceiver(com.oracle.truffle.api.frame.Frame frame)
-
getOwnerOrNull
public static @Nullable VmObjectLike getOwnerOrNull(com.oracle.truffle.api.frame.Frame frame)
Returns the owner of the currently executing code.
-
getOwner
public static VmObjectLike getOwner(com.oracle.truffle.api.frame.Frame frame)
Returns the owner of the currently executing code.
-
getMemberKey
public static java.lang.Object getMemberKey(com.oracle.truffle.api.frame.Frame frame)
Returns a `ObjectMember`'s key while executing the corresponding `MemberNode`.
-
getModuleInfo
public static ModuleInfo getModuleInfo(VmObjectLike composite)
-
readTextProperty
public static java.lang.String readTextProperty(VmObjectLike receiver)
-
readTextProperty
public static java.lang.String readTextProperty(java.lang.Object receiver)
-
readMember
public static java.lang.Object readMember(VmObjectLike receiver, java.lang.Object memberKey)
-
readMemberOrNull
public static @Nullable java.lang.Object readMemberOrNull(VmObjectLike receiver, java.lang.Object memberKey, boolean checkType)
-
readMemberOrNull
public static @Nullable java.lang.Object readMemberOrNull(VmObjectLike receiver, java.lang.Object memberKey, com.oracle.truffle.api.nodes.IndirectCallNode callNode)
-
readMemberOrNull
public static @Nullable java.lang.Object readMemberOrNull(VmObjectLike receiver, java.lang.Object memberKey)
-
doReadMember
public static java.lang.Object doReadMember(VmObjectLike receiver, VmObjectLike owner, java.lang.Object memberKey, ObjectMember member)
Before calling this method, always try `VmObject.getCachedValue()`. (This method writes to the cache, but doesn't read from it.)
-
readMember
public static java.lang.Object readMember(VmObjectLike receiver, java.lang.Object memberKey, com.oracle.truffle.api.nodes.IndirectCallNode callNode)
-
readMemberOrNull
public static @Nullable java.lang.Object readMemberOrNull(VmObjectLike receiver, java.lang.Object memberKey, boolean checkType, com.oracle.truffle.api.nodes.IndirectCallNode callNode)
-
doReadMember
public static java.lang.Object doReadMember(VmObjectLike receiver, VmObjectLike owner, java.lang.Object memberKey, ObjectMember member, boolean checkType, com.oracle.truffle.api.nodes.IndirectCallNode callNode)
Before calling this method, always try `VmObject.getCachedValue()`. (This method writes to the cache, but doesn't read from it.)
-
findMember
public static @Nullable ObjectMember findMember(VmObjectLike receiver, java.lang.Object memberKey)
-
createThisNode
public static ExpressionNode createThisNode(com.oracle.truffle.api.source.SourceSection sourceSection, boolean isCustomThisScope)
-
isRenderDirective
public static boolean isRenderDirective(VmValue value)
-
isRenderDirective
public static boolean isRenderDirective(java.lang.Object value)
-
isPcfRenderDirective
public static boolean isPcfRenderDirective(java.lang.Object value)
-
getNodeInfo
public static com.oracle.truffle.api.nodes.NodeInfo getNodeInfo(com.oracle.truffle.api.nodes.Node node)
-
getClass
public static VmClass getClass(java.lang.Object value)
-
getConfigValue
public static java.lang.String getConfigValue(com.oracle.truffle.api.TruffleLanguage.Env env, java.lang.String name, java.lang.String defaultValue)
-
unavailableSourceSection
public static com.oracle.truffle.api.source.SourceSection unavailableSourceSection()
-
put
public static org.organicdesign.fp.collections.ImMap<java.lang.Object,java.lang.Object> put(org.organicdesign.fp.collections.ImMap<java.lang.Object,java.lang.Object> map, java.lang.String key, java.lang.Object value)
-
createBuilder
public static java.lang.StringBuilder createBuilder()
-
appendToBuilder
public static void appendToBuilder(java.lang.StringBuilder builder, java.lang.String string)
-
builderToString
public static java.lang.String builderToString(java.lang.StringBuilder builder)
-
checkPositive
public static void checkPositive(long n)
-
loadSource
public static com.oracle.truffle.api.source.Source loadSource(ResolvedModuleKey resolvedKey)
-
createSource
public static com.oracle.truffle.api.source.Source createSource(ModuleKey moduleKey, java.lang.String text)
-
toVmException
public static VmException toVmException(LexParseException e, java.lang.String text, java.net.URI moduleUri, java.lang.String moduleName)
-
toVmException
public static VmException toVmException(LexParseException e, com.oracle.truffle.api.source.Source source, java.lang.String moduleName)
-
exportDocComment
public static @Nullable java.lang.String exportDocComment(@Nullable com.oracle.truffle.api.source.SourceSection docComment)
-
exportAnnotations
public static java.util.List<PObject> exportAnnotations(java.util.List<VmTyped> annotations)
-
exportAnnotations
public static void exportAnnotations(java.util.List<VmTyped> annotations, java.util.List<PObject> result)
-
evaluateAnnotations
public static java.util.List<VmTyped> evaluateAnnotations(com.oracle.truffle.api.frame.VirtualFrame frame, ExpressionNode[] annotationNodes)
-
evaluateAnnotations
public static void evaluateAnnotations(com.oracle.truffle.api.frame.VirtualFrame frame, ExpressionNode[] annotationNodes, java.util.List<VmTyped> result)
-
codePointOffsetToCharOffset
public static int codePointOffsetToCharOffset(java.lang.String string, long codePointOffset)
-
codePointOffsetToCharOffset
public static int codePointOffsetToCharOffset(java.lang.String string, long codePointOffset, int startIndex)
-
codePointOffsetFromEndToCharOffset
public static int codePointOffsetFromEndToCharOffset(java.lang.String string, long codePointOffset)
-
createDecimalFormat
public static java.text.DecimalFormat createDecimalFormat(int fractionDigits)
-
createSyntheticObjectProperty
public static ObjectMember createSyntheticObjectProperty(@Nullable Identifier identifier, java.lang.String qualifiedName, java.lang.Object constantValue)
Creates a constant object property that has no corresponding definition in Pkl code.
-
createSyntheticObjectEntry
public static ObjectMember createSyntheticObjectEntry(java.lang.String qualifiedName, java.lang.Object constantValue)
Creates a constant object entry that has no corresponding definition in Pkl code.
-
createSyntheticObjectElement
public static ObjectMember createSyntheticObjectElement(java.lang.String qualifiedName, java.lang.Object constantValue)
Creates a constant object element that has no corresponding definition in Pkl code.
-
createObjectProperty
public static ObjectMember createObjectProperty(VmLanguage language, com.oracle.truffle.api.source.SourceSection sourceSection, com.oracle.truffle.api.source.SourceSection headerSection, Identifier propertyName, java.lang.String qualifiedName, com.oracle.truffle.api.frame.FrameDescriptor descriptor, int modifiers, ExpressionNode bodyNode, @Nullable PropertyTypeNode typeNode)
-
createLocalObjectProperty
public static ObjectMember createLocalObjectProperty(VmLanguage language, com.oracle.truffle.api.source.SourceSection sourceSection, com.oracle.truffle.api.source.SourceSection headerSection, Identifier propertyName, java.lang.String qualifiedName, com.oracle.truffle.api.frame.FrameDescriptor descriptor, int modifiers, ExpressionNode bodyNode, @Nullable UnresolvedTypeNode typeNode)
-
resolveParameterTypes
public static TypeNode[] resolveParameterTypes(com.oracle.truffle.api.frame.VirtualFrame frame, com.oracle.truffle.api.frame.FrameDescriptor descriptor, @Nullable UnresolvedTypeNode[] parameterTypeNodes)
-
checkIsInstantiable
public static void checkIsInstantiable(VmClass parentClass, @Nullable com.oracle.truffle.api.nodes.Node parentNode)
-
compilePattern
public static java.util.regex.Pattern compilePattern(java.lang.String pattern, com.oracle.truffle.api.nodes.Node location)
-
getKey
public static <K,V> K getKey(java.util.Map.Entry<K,V> entry)
-
getValue
public static <K,V> V getValue(java.util.Map.Entry<K,V> entry)
-
getDisplayUri
public static java.lang.String getDisplayUri(com.oracle.truffle.api.source.SourceSection section, StackFrameTransformer transformer)
-
getDisplayUri
public static java.lang.String getDisplayUri(java.net.URI moduleUri, StackFrameTransformer transformer)
-
createStackFrame
public static StackFrame createStackFrame(com.oracle.truffle.api.source.SourceSection section, @Nullable java.lang.String memberName)
-
evaluateExpression
public static java.lang.Object evaluateExpression(VmTyped module, java.lang.String expression, SecurityManager securityManager, ModuleResolver moduleResolver)
-
findSlot
public static int findSlot(com.oracle.truffle.api.frame.VirtualFrame frame, java.lang.Object identifier)
-
findAuxiliarySlot
public static int findAuxiliarySlot(com.oracle.truffle.api.frame.VirtualFrame frame, java.lang.Object identifier)
-
-