class java.util.regex.Pattern$BnM extends java.util.regex.Pattern$Node
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.regex.Pattern$BnM
super_class: java.util.regex.Pattern$Node
{
int[] buffer;
descriptor: [I
flags: (0x0000)
int[] lastOcc;
descriptor: [I
flags: (0x0000)
int[] optoSft;
descriptor: [I
flags: (0x0000)
static java.util.regex.Pattern$Node optimize(java.util.regex.Pattern$Node);
descriptor: (Ljava/util/regex/Pattern$Node;)Ljava/util/regex/Pattern$Node;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
instanceof java.util.regex.Pattern$Slice
ifne 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
checkcast java.util.regex.Pattern$Slice
getfield java.util.regex.Pattern$Slice.buffer:[I
astore 1
start local 1 3: aload 1
arraylength
istore 2
start local 2 4: iload 2
iconst_4
if_icmpge 6
5: aload 0
areturn
6: StackMap locals: int[] int
StackMap stack:
sipush 128
newarray 10
astore 5
start local 5 7: iload 2
newarray 10
astore 6
start local 6 8: iconst_0
istore 3
start local 3 9: goto 12
10: StackMap locals: java.util.regex.Pattern$Node int[] int int top int[] int[]
StackMap stack:
aload 5
aload 1
iload 3
iaload
bipush 127
iand
iload 3
iconst_1
iadd
iastore
11: iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
iload 2
if_icmplt 10
13: iload 2
istore 3
goto 24
14: StackMap locals:
StackMap stack:
iload 2
iconst_1
isub
istore 4
start local 4 15: goto 19
16: StackMap locals: java.util.regex.Pattern$Node int[] int int int int[] int[]
StackMap stack:
aload 1
iload 4
iaload
aload 1
iload 4
iload 3
isub
iaload
if_icmpne 23
17: aload 6
iload 4
iconst_1
isub
iload 3
iastore
18: iinc 4 -1
StackMap locals:
StackMap stack:
19: iload 4
iload 3
if_icmpge 16
20: goto 22
21: StackMap locals:
StackMap stack:
aload 6
iinc 4 -1
iload 4
iload 3
iastore
22: StackMap locals:
StackMap stack:
iload 4
ifgt 21
23: StackMap locals:
StackMap stack:
iinc 3 -1
end local 4 StackMap locals: java.util.regex.Pattern$Node int[] int int top int[] int[]
StackMap stack:
24: iload 3
ifgt 14
25: aload 6
iload 2
iconst_1
isub
iconst_1
iastore
26: aload 0
instanceof java.util.regex.Pattern$SliceS
ifeq 28
27: new java.util.regex.Pattern$BnMS
dup
aload 1
aload 5
aload 6
aload 0
getfield java.util.regex.Pattern$Node.next:Ljava/util/regex/Pattern$Node;
invokespecial java.util.regex.Pattern$BnMS.<init>:([I[I[ILjava/util/regex/Pattern$Node;)V
areturn
28: StackMap locals:
StackMap stack:
new java.util.regex.Pattern$BnM
dup
aload 1
aload 5
aload 6
aload 0
getfield java.util.regex.Pattern$Node.next:Ljava/util/regex/Pattern$Node;
invokespecial java.util.regex.Pattern$BnM.<init>:([I[I[ILjava/util/regex/Pattern$Node;)V
areturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 node Ljava/util/regex/Pattern$Node;
3 29 1 src [I
4 29 2 patternLength I
9 29 3 i I
15 24 4 j I
7 29 5 lastOcc [I
8 29 6 optoSft [I
MethodParameters:
Name Flags
node
void <init>(int[], int[], int[], java.util.regex.Pattern$Node);
descriptor: ([I[I[ILjava/util/regex/Pattern$Node;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.util.regex.Pattern$Node.<init>:()V
1: aload 0
aload 1
putfield java.util.regex.Pattern$BnM.buffer:[I
2: aload 0
aload 2
putfield java.util.regex.Pattern$BnM.lastOcc:[I
3: aload 0
aload 3
putfield java.util.regex.Pattern$BnM.optoSft:[I
4: aload 0
aload 4
putfield java.util.regex.Pattern$BnM.next:Ljava/util/regex/Pattern$Node;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/regex/Pattern$BnM;
0 6 1 src [I
0 6 2 lastOcc [I
0 6 3 optoSft [I
0 6 4 next Ljava/util/regex/Pattern$Node;
MethodParameters:
Name Flags
src
lastOcc
optoSft
next
boolean match(java.util.regex.Matcher, int, java.lang.CharSequence);
descriptor: (Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z
flags: (0x0000)
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield java.util.regex.Pattern$BnM.buffer:[I
astore 4
start local 4 1: aload 4
arraylength
istore 5
start local 5 2: aload 1
getfield java.util.regex.Matcher.to:I
iload 5
isub
istore 6
start local 6 3: goto 20
4: StackMap locals: int[] int int
StackMap stack:
iload 5
iconst_1
isub
istore 7
start local 7 5: goto 11
6: StackMap locals: int
StackMap stack:
aload 3
iload 2
iload 7
iadd
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 8
start local 8 7: iload 8
aload 4
iload 7
iaload
if_icmpeq 10
8: iload 2
iload 7
iconst_1
iadd
aload 0
getfield java.util.regex.Pattern$BnM.lastOcc:[I
iload 8
bipush 127
iand
iaload
isub
aload 0
getfield java.util.regex.Pattern$BnM.optoSft:[I
iload 7
iaload
invokestatic java.lang.Math.max:(II)I
iadd
istore 2
9: goto 20
end local 8 10: StackMap locals:
StackMap stack:
iinc 7 -1
StackMap locals:
StackMap stack:
11: iload 7
ifge 6
end local 7 12: aload 1
iload 2
putfield java.util.regex.Matcher.first:I
13: aload 0
getfield java.util.regex.Pattern$BnM.next:Ljava/util/regex/Pattern$Node;
aload 1
iload 2
iload 5
iadd
aload 3
invokevirtual java.util.regex.Pattern$Node.match:(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z
istore 7
start local 7 14: iload 7
ifeq 19
15: aload 1
iload 2
putfield java.util.regex.Matcher.first:I
16: aload 1
getfield java.util.regex.Matcher.groups:[I
iconst_0
aload 1
getfield java.util.regex.Matcher.first:I
iastore
17: aload 1
getfield java.util.regex.Matcher.groups:[I
iconst_1
aload 1
getfield java.util.regex.Matcher.last:I
iastore
18: iconst_1
ireturn
19: StackMap locals: java.util.regex.Pattern$BnM java.util.regex.Matcher int java.lang.CharSequence int[] int int int
StackMap stack:
iinc 2 1
end local 7 20: StackMap locals:
StackMap stack:
iload 2
iload 6
if_icmple 4
21: aload 1
iconst_1
putfield java.util.regex.Matcher.hitEnd:Z
22: iconst_0
ireturn
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 23 0 this Ljava/util/regex/Pattern$BnM;
0 23 1 matcher Ljava/util/regex/Matcher;
0 23 2 i I
0 23 3 seq Ljava/lang/CharSequence;
1 23 4 src [I
2 23 5 patternLength I
3 23 6 last I
5 12 7 j I
7 10 8 ch I
14 20 7 ret Z
MethodParameters:
Name Flags
matcher
i
seq
boolean study(java.util.regex.Pattern$TreeInfo);
descriptor: (Ljava/util/regex/Pattern$TreeInfo;)Z
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
dup
getfield java.util.regex.Pattern$TreeInfo.minLength:I
aload 0
getfield java.util.regex.Pattern$BnM.buffer:[I
arraylength
iadd
putfield java.util.regex.Pattern$TreeInfo.minLength:I
1: aload 1
iconst_0
putfield java.util.regex.Pattern$TreeInfo.maxValid:Z
2: aload 0
getfield java.util.regex.Pattern$BnM.next:Ljava/util/regex/Pattern$Node;
aload 1
invokevirtual java.util.regex.Pattern$Node.study:(Ljava/util/regex/Pattern$TreeInfo;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/regex/Pattern$BnM;
0 3 1 info Ljava/util/regex/Pattern$TreeInfo;
MethodParameters:
Name Flags
info
}
SourceFile: "Pattern.java"
NestHost: java.util.regex.Pattern
InnerClasses:
BnM = java.util.regex.Pattern$BnM of java.util.regex.Pattern
final BnMS = java.util.regex.Pattern$BnMS of java.util.regex.Pattern
Node = java.util.regex.Pattern$Node of java.util.regex.Pattern
Slice = java.util.regex.Pattern$Slice of java.util.regex.Pattern
final SliceS = java.util.regex.Pattern$SliceS of java.util.regex.Pattern
final TreeInfo = java.util.regex.Pattern$TreeInfo of java.util.regex.Pattern