public final class com.oracle.truffle.regex.RegexObject extends com.oracle.truffle.regex.AbstractConstantKeysObject
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.regex.RegexObject
super_class: com.oracle.truffle.regex.AbstractConstantKeysObject
{
static final java.lang.String PROP_EXEC;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "exec"
static final java.lang.String PROP_EXEC_BYTES;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "execBytes"
private static final java.lang.String PROP_PATTERN;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "pattern"
private static final java.lang.String PROP_FLAGS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "flags"
private static final java.lang.String PROP_GROUP_COUNT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "groupCount"
private static final java.lang.String PROP_GROUPS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "groups"
private static final com.oracle.truffle.regex.util.TruffleReadOnlyKeysArray KEYS;
descriptor: Lcom/oracle/truffle/regex/util/TruffleReadOnlyKeysArray;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.oracle.truffle.regex.RegexCompiler compiler;
descriptor: Lcom/oracle/truffle/regex/RegexCompiler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.regex.RegexSource source;
descriptor: Lcom/oracle/truffle/regex/RegexSource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.interop.TruffleObject flags;
descriptor: Lcom/oracle/truffle/api/interop/TruffleObject;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int numberOfCaptureGroups;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.interop.TruffleObject namedCaptureGroups;
descriptor: Lcom/oracle/truffle/api/interop/TruffleObject;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.Object compiledRegexObject;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private static final java.lang.String N_METHODS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "2"
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: new com.oracle.truffle.regex.util.TruffleReadOnlyKeysArray
dup
iconst_5
anewarray java.lang.String
dup
iconst_0
ldc "exec"
aastore
dup
iconst_1
ldc "pattern"
aastore
dup
iconst_2
ldc "flags"
aastore
dup
iconst_3
ldc "groupCount"
aastore
dup
iconst_4
ldc "groups"
aastore
invokespecial com.oracle.truffle.regex.util.TruffleReadOnlyKeysArray.<init>:([Ljava/lang/String;)V
putstatic com.oracle.truffle.regex.RegexObject.KEYS:Lcom/oracle/truffle/regex/util/TruffleReadOnlyKeysArray;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.oracle.truffle.regex.RegexCompiler, com.oracle.truffle.regex.RegexSource, com.oracle.truffle.api.interop.TruffleObject, int, java.util.Map<java.lang.String, java.lang.Integer>);
descriptor: (Lcom/oracle/truffle/regex/RegexCompiler;Lcom/oracle/truffle/regex/RegexSource;Lcom/oracle/truffle/api/interop/TruffleObject;ILjava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial com.oracle.truffle.regex.AbstractConstantKeysObject.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.regex.RegexObject.compiler:Lcom/oracle/truffle/regex/RegexCompiler;
2: aload 0
aload 2
putfield com.oracle.truffle.regex.RegexObject.source:Lcom/oracle/truffle/regex/RegexSource;
3: aload 0
aload 3
putfield com.oracle.truffle.regex.RegexObject.flags:Lcom/oracle/truffle/api/interop/TruffleObject;
4: aload 0
iload 4
putfield com.oracle.truffle.regex.RegexObject.numberOfCaptureGroups:I
5: aload 0
aload 5
ifnull 6
new com.oracle.truffle.regex.util.TruffleReadOnlyMap
dup
aload 5
invokespecial com.oracle.truffle.regex.util.TruffleReadOnlyMap.<init>:(Ljava/util/Map;)V
goto 7
StackMap locals: com.oracle.truffle.regex.RegexObject com.oracle.truffle.regex.RegexCompiler com.oracle.truffle.regex.RegexSource com.oracle.truffle.api.interop.TruffleObject int java.util.Map
StackMap stack: com.oracle.truffle.regex.RegexObject
6: getstatic com.oracle.truffle.regex.util.TruffleNull.INSTANCE:Lcom/oracle/truffle/regex/util/TruffleNull;
StackMap locals: com.oracle.truffle.regex.RegexObject com.oracle.truffle.regex.RegexCompiler com.oracle.truffle.regex.RegexSource com.oracle.truffle.api.interop.TruffleObject int java.util.Map
StackMap stack: com.oracle.truffle.regex.RegexObject com.oracle.truffle.regex.AbstractRegexObject
7: putfield com.oracle.truffle.regex.RegexObject.namedCaptureGroups:Lcom/oracle/truffle/api/interop/TruffleObject;
8: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/regex/RegexObject;
0 9 1 compiler Lcom/oracle/truffle/regex/RegexCompiler;
0 9 2 source Lcom/oracle/truffle/regex/RegexSource;
0 9 3 flags Lcom/oracle/truffle/api/interop/TruffleObject;
0 9 4 numberOfCaptureGroups I
0 9 5 namedCaptureGroups Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
Signature: (Lcom/oracle/truffle/regex/RegexCompiler;Lcom/oracle/truffle/regex/RegexSource;Lcom/oracle/truffle/api/interop/TruffleObject;ILjava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
compiler
source
flags
numberOfCaptureGroups
namedCaptureGroups
public com.oracle.truffle.regex.RegexSource getSource();
descriptor: ()Lcom/oracle/truffle/regex/RegexSource;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.regex.RegexObject.source:Lcom/oracle/truffle/regex/RegexSource;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/regex/RegexObject;
public com.oracle.truffle.api.interop.TruffleObject getFlags();
descriptor: ()Lcom/oracle/truffle/api/interop/TruffleObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.regex.RegexObject.flags:Lcom/oracle/truffle/api/interop/TruffleObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/regex/RegexObject;
public int getNumberOfCaptureGroups();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.regex.RegexObject.numberOfCaptureGroups:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/regex/RegexObject;
public com.oracle.truffle.api.interop.TruffleObject getNamedCaptureGroups();
descriptor: ()Lcom/oracle/truffle/api/interop/TruffleObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.regex.RegexObject.namedCaptureGroups:Lcom/oracle/truffle/api/interop/TruffleObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/regex/RegexObject;
public java.lang.Object getCompiledRegexObject();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.regex.RegexObject.compiledRegexObject:Ljava/lang/Object;
ifnonnull 2
1: aload 0
aload 0
aload 0
getfield com.oracle.truffle.regex.RegexObject.source:Lcom/oracle/truffle/regex/RegexSource;
invokevirtual com.oracle.truffle.regex.RegexObject.compileRegex:(Lcom/oracle/truffle/regex/RegexSource;)Ljava/lang/Object;
putfield com.oracle.truffle.regex.RegexObject.compiledRegexObject:Ljava/lang/Object;
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.regex.RegexObject.compiledRegexObject:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/regex/RegexObject;
private java.lang.Object compileRegex(com.oracle.truffle.regex.RegexSource);
descriptor: (Lcom/oracle/truffle/regex/RegexSource;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.regex.RegexObject.compiler:Lcom/oracle/truffle/regex/RegexCompiler;
aload 1
invokeinterface com.oracle.truffle.regex.RegexCompiler.compile:(Lcom/oracle/truffle/regex/RegexSource;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/regex/RegexObject;
0 1 1 src Lcom/oracle/truffle/regex/RegexSource;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
src
public void setCompiledRegexObject(com.oracle.truffle.api.interop.TruffleObject);
descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.truffle.regex.RegexObject.compiledRegexObject:Ljava/lang/Object;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/regex/RegexObject;
0 2 1 compiledRegexObject Lcom/oracle/truffle/api/interop/TruffleObject;
MethodParameters:
Name Flags
compiledRegexObject
public com.oracle.truffle.regex.RegexObject$RegexObjectExecMethod getExecMethod();
descriptor: ()Lcom/oracle/truffle/regex/RegexObject$RegexObjectExecMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.oracle.truffle.regex.RegexObject$RegexObjectExecMethod
dup
aload 0
invokespecial com.oracle.truffle.regex.RegexObject$RegexObjectExecMethod.<init>:(Lcom/oracle/truffle/regex/RegexObject;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/regex/RegexObject;
public com.oracle.truffle.regex.RegexObject$RegexObjectExecUTF8Method getExecUTF8Method();
descriptor: ()Lcom/oracle/truffle/regex/RegexObject$RegexObjectExecUTF8Method;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.oracle.truffle.regex.RegexObject$RegexObjectExecUTF8Method
dup
aload 0
invokespecial com.oracle.truffle.regex.RegexObject$RegexObjectExecUTF8Method.<init>:(Lcom/oracle/truffle/regex/RegexObject;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/regex/RegexObject;
public com.oracle.truffle.regex.util.TruffleReadOnlyKeysArray getKeys();
descriptor: ()Lcom/oracle/truffle/regex/util/TruffleReadOnlyKeysArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.regex.RegexObject.KEYS:Lcom/oracle/truffle/regex/util/TruffleReadOnlyKeysArray;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/regex/RegexObject;
public java.lang.Object readMemberImpl(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 6
-1237460524: 1
-1137915302: 2
-791090288: 3
3127441: 4
97513095: 5
1256497616: 6
default: 13
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 2
ldc "groups"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
goto 13
StackMap locals:
StackMap stack:
2: aload 2
ldc "execBytes"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
goto 13
StackMap locals:
StackMap stack:
3: aload 2
ldc "pattern"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 13
StackMap locals:
StackMap stack:
4: aload 2
ldc "exec"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 13
StackMap locals:
StackMap stack:
5: aload 2
ldc "flags"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 13
StackMap locals:
StackMap stack:
6: aload 2
ldc "groupCount"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 13
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.regex.RegexObject.getExecMethod:()Lcom/oracle/truffle/regex/RegexObject$RegexObjectExecMethod;
areturn
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.regex.RegexObject.getExecUTF8Method:()Lcom/oracle/truffle/regex/RegexObject$RegexObjectExecUTF8Method;
areturn
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.regex.RegexObject.getSource:()Lcom/oracle/truffle/regex/RegexSource;
invokevirtual com.oracle.truffle.regex.RegexSource.getPattern:()Ljava/lang/String;
areturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.regex.RegexObject.getFlags:()Lcom/oracle/truffle/api/interop/TruffleObject;
areturn
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.regex.RegexObject.getNumberOfCaptureGroups:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.regex.RegexObject.getNamedCaptureGroups:()Lcom/oracle/truffle/api/interop/TruffleObject;
areturn
13: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
14: aload 1
invokestatic com.oracle.truffle.api.interop.UnknownIdentifierException.create:(Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnknownIdentifierException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/regex/RegexObject;
0 15 1 symbol Ljava/lang/String;
Exceptions:
throws com.oracle.truffle.api.interop.UnknownIdentifierException
MethodParameters:
Name Flags
symbol
boolean isMemberInvocable(java.lang.String, com.oracle.truffle.regex.RegexObject$IsInvocableCacheNode);
descriptor: (Ljava/lang/String;Lcom/oracle/truffle/regex/RegexObject$IsInvocableCacheNode;)Z
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
invokevirtual com.oracle.truffle.regex.RegexObject$IsInvocableCacheNode.execute:(Ljava/lang/String;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/regex/RegexObject;
0 1 1 member Ljava/lang/String;
0 1 2 cache Lcom/oracle/truffle/regex/RegexObject$IsInvocableCacheNode;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
member
cache
java.lang.Object invokeMember(java.lang.String, java.lang.Object[], com.oracle.truffle.regex.runtime.nodes.ToLongNode, com.oracle.truffle.regex.RegexObject$GetCompiledRegexNode, com.oracle.truffle.regex.RegexObject$InvokeCacheNode);
descriptor: (Ljava/lang/String;[Ljava/lang/Object;Lcom/oracle/truffle/regex/runtime/nodes/ToLongNode;Lcom/oracle/truffle/regex/RegexObject$GetCompiledRegexNode;Lcom/oracle/truffle/regex/RegexObject$InvokeCacheNode;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=6, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
arraylength
iconst_2
if_icmpeq 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: iconst_2
aload 2
arraylength
invokestatic com.oracle.truffle.api.interop.ArityException.create:(II)Lcom/oracle/truffle/api/interop/ArityException;
athrow
3: StackMap locals:
StackMap stack:
aload 2
iconst_0
aaload
astore 6
start local 6 4: aload 3
aload 2
iconst_1
aaload
invokevirtual com.oracle.truffle.regex.runtime.nodes.ToLongNode.execute:(Ljava/lang/Object;)J
lstore 7
start local 7 5: lload 7
ldc 2147483647
lcmp
ifle 7
6: invokestatic com.oracle.truffle.regex.result.NoMatchResult.getInstance:()Lcom/oracle/truffle/regex/result/NoMatchResult;
areturn
7: StackMap locals: java.lang.Object long
StackMap stack:
aload 5
aload 1
aload 4
aload 0
invokevirtual com.oracle.truffle.regex.RegexObject$GetCompiledRegexNode.execute:(Lcom/oracle/truffle/regex/RegexObject;)Ljava/lang/Object;
aload 6
lload 7
l2i
invokevirtual com.oracle.truffle.regex.RegexObject$InvokeCacheNode.execute:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;I)Ljava/lang/Object;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/regex/RegexObject;
0 8 1 member Ljava/lang/String;
0 8 2 args [Ljava/lang/Object;
0 8 3 toLongNode Lcom/oracle/truffle/regex/runtime/nodes/ToLongNode;
0 8 4 getCompiledRegexNode Lcom/oracle/truffle/regex/RegexObject$GetCompiledRegexNode;
0 8 5 invokeCache Lcom/oracle/truffle/regex/RegexObject$InvokeCacheNode;
4 8 6 input Ljava/lang/Object;
5 8 7 fromIndex J
Exceptions:
throws com.oracle.truffle.api.interop.UnknownIdentifierException, com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.api.interop.UnsupportedTypeException, com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.dsl.Cached()
3:
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
member
args
toLongNode
getCompiledRegexNode
invokeCache
}
SourceFile: "RegexObject.java"
NestMembers:
com.oracle.truffle.regex.RegexObject$ExecCompiledRegexNode com.oracle.truffle.regex.RegexObject$GetCompiledRegexNode com.oracle.truffle.regex.RegexObject$InvokeCacheNode com.oracle.truffle.regex.RegexObject$IsInvocableCacheNode com.oracle.truffle.regex.RegexObject$RegexObjectExecMethod com.oracle.truffle.regex.RegexObject$RegexObjectExecUTF8Method
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
abstract ExecCompiledRegexNode = com.oracle.truffle.regex.RegexObject$ExecCompiledRegexNode of com.oracle.truffle.regex.RegexObject
abstract GetCompiledRegexNode = com.oracle.truffle.regex.RegexObject$GetCompiledRegexNode of com.oracle.truffle.regex.RegexObject
abstract InvokeCacheNode = com.oracle.truffle.regex.RegexObject$InvokeCacheNode of com.oracle.truffle.regex.RegexObject
abstract IsInvocableCacheNode = com.oracle.truffle.regex.RegexObject$IsInvocableCacheNode of com.oracle.truffle.regex.RegexObject
public final RegexObjectExecMethod = com.oracle.truffle.regex.RegexObject$RegexObjectExecMethod of com.oracle.truffle.regex.RegexObject
public final RegexObjectExecUTF8Method = com.oracle.truffle.regex.RegexObject$RegexObjectExecUTF8Method of com.oracle.truffle.regex.RegexObject
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/InteropLibrary;)