final class org.joni.ArrayCompiler extends org.joni.Compiler
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.joni.ArrayCompiler
super_class: org.joni.Compiler
{
private int[] code;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int codeLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[][] templates;
descriptor: [[B
flags: (0x0002) ACC_PRIVATE
private int templateNum;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int REPEAT_RANGE_ALLOC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int QUANTIFIER_EXPAND_LIMIT_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 50
void <init>(org.joni.Analyser);
descriptor: (Lorg/joni/Analyser;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.joni.Compiler.<init>:(Lorg/joni/Analyser;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/joni/ArrayCompiler;
0 2 1 analyser Lorg/joni/Analyser;
MethodParameters:
Name Flags
analyser
protected final void prepare();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: bipush 8
istore 1
start local 1 1: aload 0
iload 1
newarray 10
putfield org.joni.ArrayCompiler.code:[I
2: aload 0
iconst_0
putfield org.joni.ArrayCompiler.codeLength:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/joni/ArrayCompiler;
1 4 1 codeSize I
protected final void finish();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
1: aload 0
iconst_0
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
2: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.ArrayCompiler.code:[I
putfield org.joni.Regex.code:[I
3: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.ArrayCompiler.codeLength:I
putfield org.joni.Regex.codeLength:I
4: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.ArrayCompiler.templates:[[B
putfield org.joni.Regex.templates:[[B
5: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.ArrayCompiler.templateNum:I
putfield org.joni.Regex.templateNum:I
6: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getstatic org.joni.MatcherFactory.DEFAULT:Lorg/joni/MatcherFactory;
putfield org.joni.Regex.factory:Lorg/joni/MatcherFactory;
7: aload 0
getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.unsetAddrList:Lorg/joni/UnsetAddrList;
ifnull 10
8: aload 0
getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.unsetAddrList:Lorg/joni/UnsetAddrList;
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
invokevirtual org.joni.UnsetAddrList.fix:(Lorg/joni/Regex;)V
9: aload 0
getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aconst_null
putfield org.joni.ScanEnvironment.unsetAddrList:Lorg/joni/UnsetAddrList;
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/joni/ArrayCompiler;
protected void compileAltNode(org.joni.ast.ListNode);
descriptor: (Lorg/joni/ast/ListNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: StackMap locals: org.joni.ast.ListNode int
StackMap stack:
iload 3
aload 0
aload 2
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
iadd
istore 3
3: aload 2
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
ifnull 5
4: iinc 3 4
5: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 2
ifnonnull 2
6: aload 0
getfield org.joni.ArrayCompiler.codeLength:I
iload 3
iadd
istore 4
start local 4 7: aload 1
astore 2
8: StackMap locals: int
StackMap stack:
aload 0
aload 2
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 3
9: aload 2
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
ifnull 12
10: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
11: aload 0
bipush 62
iload 3
iconst_2
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
12: StackMap locals:
StackMap stack:
aload 0
aload 2
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
13: aload 2
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
ifnull 16
14: iload 4
aload 0
getfield org.joni.ArrayCompiler.codeLength:I
iconst_2
iadd
isub
istore 3
15: aload 0
bipush 61
iload 3
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
16: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 2
ifnonnull 8
17: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/joni/ArrayCompiler;
0 18 1 node Lorg/joni/ast/ListNode;
1 18 2 aln Lorg/joni/ast/ListNode;
2 18 3 len I
7 18 4 pos I
MethodParameters:
Name Flags
node
private boolean isNeedStrLenOpExact(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 7
if_icmpeq 7
1: iload 1
bipush 11
if_icmpeq 7
2: iload 1
bipush 12
if_icmpeq 7
3: iload 1
bipush 13
if_icmpeq 7
4: iload 1
bipush 15
if_icmpeq 7
5: iload 1
bipush 99
if_icmpeq 7
6: iconst_0
ireturn
StackMap locals:
StackMap stack:
7: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/joni/ArrayCompiler;
0 8 1 op I
MethodParameters:
Name Flags
op
private boolean opTemplated(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.isNeedStrLenOpExact:(I)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/joni/ArrayCompiler;
0 1 1 op I
MethodParameters:
Name Flags
op
private int selectStrOpcode(int, int, boolean);
descriptor: (IIZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iload 1
iadd
iconst_1
isub
iload 1
idiv
istore 5
start local 5 1: iload 3
ifeq 11
2: iload 5
tableswitch { // 1 - 1
1: 3
default: 7
}
3: StackMap locals: org.joni.ArrayCompiler int int int top int
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.toLowerCaseTable:()[B
ifnull 4
bipush 98
goto 5
StackMap locals:
StackMap stack:
4: bipush 14
StackMap locals:
StackMap stack: int
5: istore 4
start local 4 6: goto 37
end local 4 7: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.toLowerCaseTable:()[B
ifnull 8
bipush 99
goto 9
StackMap locals:
StackMap stack:
8: bipush 15
StackMap locals:
StackMap stack: int
9: istore 4
start local 4 10: goto 37
end local 4 11: StackMap locals:
StackMap stack:
iload 1
tableswitch { // 1 - 3
1: 12
2: 25
3: 34
default: 36
}
12: StackMap locals:
StackMap stack:
iload 5
tableswitch { // 1 - 5
1: 13
2: 15
3: 17
4: 19
5: 21
default: 23
}
13: StackMap locals:
StackMap stack:
iconst_2
istore 4
start local 4 14: goto 37
end local 4 15: StackMap locals:
StackMap stack:
iconst_3
istore 4
start local 4 16: goto 37
end local 4 17: StackMap locals:
StackMap stack:
iconst_4
istore 4
start local 4 18: goto 37
end local 4 19: StackMap locals:
StackMap stack:
iconst_5
istore 4
start local 4 20: goto 37
end local 4 21: StackMap locals:
StackMap stack:
bipush 6
istore 4
start local 4 22: goto 37
end local 4 23: StackMap locals:
StackMap stack:
bipush 7
istore 4
start local 4 24: goto 37
end local 4 25: StackMap locals:
StackMap stack:
iload 5
tableswitch { // 1 - 3
1: 26
2: 28
3: 30
default: 32
}
26: StackMap locals:
StackMap stack:
bipush 8
istore 4
start local 4 27: goto 37
end local 4 28: StackMap locals:
StackMap stack:
bipush 9
istore 4
start local 4 29: goto 37
end local 4 30: StackMap locals:
StackMap stack:
bipush 10
istore 4
start local 4 31: goto 37
end local 4 32: StackMap locals:
StackMap stack:
bipush 11
istore 4
start local 4 33: goto 37
end local 4 34: StackMap locals:
StackMap stack:
bipush 12
istore 4
start local 4 35: goto 37
end local 4 36: StackMap locals:
StackMap stack:
bipush 13
istore 4
start local 4 37: StackMap locals: org.joni.ArrayCompiler int int int int int
StackMap stack:
iload 4
ireturn
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 38 0 this Lorg/joni/ArrayCompiler;
0 38 1 mbLength I
0 38 2 byteLength I
0 38 3 ignoreCase Z
6 7 4 op I
10 11 4 op I
14 15 4 op I
16 17 4 op I
18 19 4 op I
20 21 4 op I
22 23 4 op I
24 25 4 op I
27 28 4 op I
29 30 4 op I
31 32 4 op I
33 34 4 op I
35 36 4 op I
37 38 4 op I
1 38 5 strLength I
MethodParameters:
Name Flags
mbLength
byteLength
ignoreCase
private void compileTreeEmptyCheck(org.joni.ast.Node, int);
descriptor: (Lorg/joni/ast/Node;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.numNullCheck:I
istore 3
start local 3 1: iload 2
ifeq 6
2: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
3: aload 0
bipush 72
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
4: aload 0
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.numNullCheck:I
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
5: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
dup
getfield org.joni.Regex.numNullCheck:I
iconst_1
iadd
putfield org.joni.Regex.numNullCheck:I
6: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
7: iload 2
ifeq 15
8: iload 2
tableswitch { // 1 - 3
1: 9
2: 11
3: 13
default: 14
}
9: StackMap locals:
StackMap stack:
aload 0
bipush 73
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
10: goto 14
11: StackMap locals:
StackMap stack:
aload 0
bipush 74
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
bipush 75
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
14: StackMap locals:
StackMap stack:
aload 0
iload 3
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
15: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/joni/ArrayCompiler;
0 16 1 node Lorg/joni/ast/Node;
0 16 2 emptyInfo I
1 16 3 savedNumNullCheck I
MethodParameters:
Name Flags
node
emptyInfo
private int addCompileStringlength(byte[], int, int, int, boolean);
descriptor: ([BIIIZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 3
iload 4
iload 5
invokevirtual org.joni.ArrayCompiler.selectStrOpcode:(IIZ)I
istore 6
start local 6 1: iconst_1
istore 7
start local 7 2: aload 0
iload 6
invokevirtual org.joni.ArrayCompiler.opTemplated:(I)Z
ifeq 5
3: iinc 7 3
4: goto 7
5: StackMap locals: int int
StackMap stack:
aload 0
iload 6
invokevirtual org.joni.ArrayCompiler.isNeedStrLenOpExact:(I)Z
ifeq 6
iinc 7 1
6: StackMap locals:
StackMap stack:
iload 7
iload 4
iadd
istore 7
7: StackMap locals:
StackMap stack:
iload 6
bipush 13
if_icmpne 8
iinc 7 1
8: StackMap locals:
StackMap stack:
iload 7
ireturn
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 9 0 this Lorg/joni/ArrayCompiler;
0 9 1 bytes [B
0 9 2 p I
0 9 3 mbLength I
0 9 4 byteLength I
0 9 5 ignoreCase Z
1 9 6 op I
2 9 7 len I
MethodParameters:
Name Flags
bytes
p
mbLength
byteLength
ignoreCase
protected final void addCompileString(byte[], int, int, int, boolean);
descriptor: ([BIIIZ)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=4, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 3
iload 4
iload 5
invokevirtual org.joni.ArrayCompiler.selectStrOpcode:(IIZ)I
istore 6
start local 6 1: aload 0
iload 6
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
2: iload 6
bipush 13
if_icmpne 3
aload 0
iload 3
invokevirtual org.joni.ArrayCompiler.addLength:(I)V
3: StackMap locals: int
StackMap stack:
aload 0
iload 6
invokevirtual org.joni.ArrayCompiler.isNeedStrLenOpExact:(I)Z
ifeq 8
4: iload 6
bipush 15
if_icmpeq 5
iload 6
bipush 99
if_icmpne 7
5: StackMap locals:
StackMap stack:
aload 0
iload 4
invokevirtual org.joni.ArrayCompiler.addLength:(I)V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
iload 4
iload 3
idiv
invokevirtual org.joni.ArrayCompiler.addLength:(I)V
8: StackMap locals:
StackMap stack:
aload 0
iload 6
invokevirtual org.joni.ArrayCompiler.opTemplated:(I)Z
ifeq 13
9: aload 0
aload 0
getfield org.joni.ArrayCompiler.templateNum:I
invokevirtual org.joni.ArrayCompiler.addInt:(I)V
10: aload 0
iload 2
invokevirtual org.joni.ArrayCompiler.addInt:(I)V
11: aload 0
aload 1
invokevirtual org.joni.ArrayCompiler.addTemplate:([B)V
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 4
invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
14: StackMap locals:
StackMap stack:
return
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 15 0 this Lorg/joni/ArrayCompiler;
0 15 1 bytes [B
0 15 2 p I
0 15 3 mbLength I
0 15 4 byteLength I
0 15 5 ignoreCase Z
1 15 6 op I
MethodParameters:
Name Flags
bytes
p
mbLength
byteLength
ignoreCase
private int compileLengthStringNode(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.joni.ast.StringNode
astore 2
start local 2 1: aload 2
invokevirtual org.joni.ast.StringNode.length:()I
ifgt 2
iconst_0
ireturn
2: StackMap locals: org.joni.ast.StringNode
StackMap stack:
aload 2
invokevirtual org.joni.ast.StringNode.isAmbig:()Z
istore 3
start local 3 3: aload 2
getfield org.joni.ast.StringNode.p:I
dup
istore 5
start local 5 4: istore 4
start local 4 5: aload 2
getfield org.joni.ast.StringNode.end:I
istore 6
start local 6 6: aload 2
getfield org.joni.ast.StringNode.bytes:[B
astore 7
start local 7 7: aload 0
getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
aload 7
iload 4
iload 6
invokevirtual org.jcodings.Encoding.length:([BII)I
istore 8
start local 8 8: iload 4
iload 8
iadd
istore 4
9: iload 8
istore 9
start local 9 10: iconst_0
istore 10
start local 10 11: goto 22
12: StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node org.joni.ast.StringNode int int int int byte[] int int int
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
aload 7
iload 4
iload 6
invokevirtual org.jcodings.Encoding.length:([BII)I
istore 11
start local 11 13: iload 11
iload 8
if_icmpeq 14
iload 3
ifeq 16
14: StackMap locals: int
StackMap stack:
iload 9
iload 11
iadd
istore 9
15: goto 21
16: StackMap locals:
StackMap stack:
aload 0
aload 7
iload 5
iload 8
iload 9
iload 3
invokevirtual org.joni.ArrayCompiler.addCompileStringlength:([BIIIZ)I
istore 12
start local 12 17: iload 10
iload 12
iadd
istore 10
18: iload 4
istore 5
19: iload 11
istore 9
20: iload 11
istore 8
end local 12 21: StackMap locals:
StackMap stack:
iload 4
iload 11
iadd
istore 4
end local 11 22: StackMap locals:
StackMap stack:
iload 4
iload 6
if_icmplt 12
23: aload 0
aload 7
iload 5
iload 8
iload 9
iload 3
invokevirtual org.joni.ArrayCompiler.addCompileStringlength:([BIIIZ)I
istore 11
start local 11 24: iload 10
iload 11
iadd
istore 10
25: iload 10
ireturn
end local 11 end local 10 end local 9 end local 8 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 26 0 this Lorg/joni/ArrayCompiler;
0 26 1 node Lorg/joni/ast/Node;
1 26 2 sn Lorg/joni/ast/StringNode;
3 26 3 ambig Z
5 26 4 p I
4 26 5 prev I
6 26 6 end I
7 26 7 bytes [B
8 26 8 prevLen I
10 26 9 blen I
11 26 10 rlen I
13 22 11 len I
17 21 12 r I
24 26 11 r I
MethodParameters:
Name Flags
node
private int compileLengthStringRawNode(org.joni.ast.StringNode);
descriptor: (Lorg/joni/ast/StringNode;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.joni.ast.StringNode.length:()I
ifgt 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.StringNode.bytes:[B
aload 1
getfield org.joni.ast.StringNode.p:I
iconst_1
aload 1
invokevirtual org.joni.ast.StringNode.length:()I
iconst_0
invokevirtual org.joni.ArrayCompiler.addCompileStringlength:([BIIIZ)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/joni/ArrayCompiler;
0 2 1 sn Lorg/joni/ast/StringNode;
MethodParameters:
Name Flags
sn
private void addMultiByteCClass(org.joni.CodeRangeBuffer);
descriptor: (Lorg/joni/CodeRangeBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.joni.CodeRangeBuffer.getUsed:()I
invokevirtual org.joni.ArrayCompiler.addLength:(I)V
1: aload 0
aload 1
invokevirtual org.joni.CodeRangeBuffer.getCodeRange:()[I
aload 1
invokevirtual org.joni.CodeRangeBuffer.getUsed:()I
invokevirtual org.joni.ArrayCompiler.addInts:([II)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/joni/ArrayCompiler;
0 3 1 mbuf Lorg/joni/CodeRangeBuffer;
MethodParameters:
Name Flags
mbuf
private int compileLengthCClassNode(org.joni.ast.CClassNode);
descriptor: (Lorg/joni/ast/CClassNode;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
ifnonnull 3
1: bipush 9
istore 2
start local 2 2: goto 8
end local 2 3: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.minLength:()I
iconst_1
if_icmpgt 4
aload 1
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
invokevirtual org.joni.BitSet.isEmpty:()Z
ifeq 6
4: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 5: goto 7
end local 2 6: StackMap locals:
StackMap stack:
bipush 9
istore 2
start local 2 7: StackMap locals: int
StackMap stack:
iload 2
iconst_1
aload 1
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
invokevirtual org.joni.CodeRangeBuffer.getUsed:()I
iadd
iadd
istore 2
8: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/joni/ArrayCompiler;
0 9 1 cc Lorg/joni/ast/CClassNode;
2 3 2 len I
5 6 2 len I
7 9 2 len I
MethodParameters:
Name Flags
cc
protected void compileCClassNode(org.joni.ast.CClassNode);
descriptor: (Lorg/joni/ast/CClassNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
ifnonnull 7
1: aload 1
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 4
2: aload 0
bipush 19
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
bipush 16
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
5: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
getfield org.joni.BitSet.bits:[I
bipush 8
invokevirtual org.joni.ArrayCompiler.addInts:([II)V
6: goto 20
7: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.minLength:()I
iconst_1
if_icmpgt 8
aload 1
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
invokevirtual org.joni.BitSet.isEmpty:()Z
ifeq 14
8: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 11
9: aload 0
bipush 20
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
10: goto 12
11: StackMap locals:
StackMap stack:
aload 0
bipush 17
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
12: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
invokevirtual org.joni.ArrayCompiler.addMultiByteCClass:(Lorg/joni/CodeRangeBuffer;)V
13: goto 20
14: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 17
15: aload 0
bipush 21
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
16: goto 18
17: StackMap locals:
StackMap stack:
aload 0
bipush 18
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
18: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
getfield org.joni.BitSet.bits:[I
bipush 8
invokevirtual org.joni.ArrayCompiler.addInts:([II)V
19: aload 0
aload 1
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
invokevirtual org.joni.ArrayCompiler.addMultiByteCClass:(Lorg/joni/CodeRangeBuffer;)V
20: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/joni/ArrayCompiler;
0 21 1 cc Lorg/joni/ast/CClassNode;
MethodParameters:
Name Flags
cc
protected void compileCTypeNode(org.joni.ast.CTypeNode);
descriptor: (Lorg/joni/ast/CTypeNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: aload 2
getfield org.joni.ast.CTypeNode.ctype:I
tableswitch { // 12 - 12
12: 2
default: 13
}
2: StackMap locals: org.joni.ast.CTypeNode
StackMap stack:
aload 2
getfield org.joni.ast.CTypeNode.not:Z
ifeq 8
3: aload 2
getfield org.joni.ast.CTypeNode.asciiRange:Z
ifeq 6
4: bipush 35
istore 3
start local 3 5: goto 15
end local 3 6: StackMap locals:
StackMap stack:
bipush 29
istore 3
start local 3 7: goto 15
end local 3 8: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.ast.CTypeNode.asciiRange:Z
ifeq 11
9: bipush 34
istore 3
start local 3 10: goto 15
end local 3 11: StackMap locals:
StackMap stack:
bipush 28
istore 3
start local 3 12: goto 15
end local 3 13: StackMap locals:
StackMap stack:
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
14: return
start local 3 15: StackMap locals: int
StackMap stack:
aload 0
iload 3
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/joni/ArrayCompiler;
0 17 1 node Lorg/joni/ast/CTypeNode;
1 17 2 cn Lorg/joni/ast/CTypeNode;
5 6 3 op I
7 8 3 op I
10 11 3 op I
12 13 3 op I
15 17 3 op I
MethodParameters:
Name Flags
node
protected void compileAnyCharNode();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isMultiline:(I)Z
ifeq 3
1: aload 0
bipush 23
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
bipush 22
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/joni/ArrayCompiler;
protected void compileCallNode(org.joni.ast.CallNode);
descriptor: (Lorg/joni/ast/CallNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
bipush 88
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
1: aload 1
getfield org.joni.ast.CallNode.unsetAddrList:Lorg/joni/UnsetAddrList;
aload 0
getfield org.joni.ArrayCompiler.codeLength:I
aload 1
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
invokevirtual org.joni.UnsetAddrList.add:(ILorg/joni/ast/EncloseNode;)V
2: aload 0
iconst_0
invokevirtual org.joni.ArrayCompiler.addAbsAddr:(I)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/joni/ArrayCompiler;
0 4 1 node Lorg/joni/ast/CallNode;
MethodParameters:
Name Flags
node
protected void compileBackrefNode(org.joni.ast.BackRefNode);
descriptor: (Lorg/joni/ast/BackRefNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: aload 2
invokevirtual org.joni.ast.BackRefNode.isNestLevel:()Z
ifeq 11
2: aload 0
bipush 52
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
3: aload 0
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
iconst_1
iand
invokevirtual org.joni.ArrayCompiler.addOption:(I)V
4: aload 0
aload 2
getfield org.joni.ast.BackRefNode.nestLevel:I
invokevirtual org.joni.ArrayCompiler.addLength:(I)V
5: aload 0
aload 2
getfield org.joni.ast.BackRefNode.backNum:I
invokevirtual org.joni.ArrayCompiler.addLength:(I)V
6: aload 2
getfield org.joni.ast.BackRefNode.backNum:I
iconst_1
isub
istore 3
start local 3 7: goto 9
StackMap locals: org.joni.ast.BackRefNode int
StackMap stack:
8: aload 0
aload 2
getfield org.joni.ast.BackRefNode.back:[I
iload 3
iaload
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
iinc 3 -1
StackMap locals:
StackMap stack:
9: iload 3
ifge 8
end local 3 10: return
11: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.ast.BackRefNode.backNum:I
iconst_1
if_icmpne 24
12: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isIgnoreCase:(I)Z
ifeq 16
13: aload 0
bipush 49
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
14: aload 0
aload 2
getfield org.joni.ast.BackRefNode.back:[I
iconst_0
iaload
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
15: goto 33
16: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.ast.BackRefNode.back:[I
iconst_0
iaload
tableswitch { // 1 - 2
1: 17
2: 19
default: 21
}
17: StackMap locals:
StackMap stack:
aload 0
bipush 46
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
18: goto 33
19: StackMap locals:
StackMap stack:
aload 0
bipush 47
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
20: goto 33
21: StackMap locals:
StackMap stack:
aload 0
bipush 48
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
22: aload 0
aload 2
getfield org.joni.ast.BackRefNode.back:[I
iconst_0
iaload
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
23: goto 33
24: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isIgnoreCase:(I)Z
ifeq 27
25: aload 0
bipush 51
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
26: goto 28
27: StackMap locals:
StackMap stack:
aload 0
bipush 50
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
28: StackMap locals:
StackMap stack:
aload 0
aload 2
getfield org.joni.ast.BackRefNode.backNum:I
invokevirtual org.joni.ArrayCompiler.addLength:(I)V
29: aload 2
getfield org.joni.ast.BackRefNode.backNum:I
iconst_1
isub
istore 3
start local 3 30: goto 32
StackMap locals: int
StackMap stack:
31: aload 0
aload 2
getfield org.joni.ast.BackRefNode.back:[I
iload 3
iaload
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
iinc 3 -1
StackMap locals:
StackMap stack:
32: iload 3
ifge 31
end local 3 33: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/joni/ArrayCompiler;
0 34 1 node Lorg/joni/ast/BackRefNode;
1 34 2 br Lorg/joni/ast/BackRefNode;
7 10 3 i I
30 33 3 i I
MethodParameters:
Name Flags
node
private void entryRepeatRange(int, int, int);
descriptor: (III)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeLo:[I
ifnonnull 4
1: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
bipush 8
newarray 10
putfield org.joni.Regex.repeatRangeLo:[I
2: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
bipush 8
newarray 10
putfield org.joni.Regex.repeatRangeHi:[I
3: goto 11
StackMap locals:
StackMap stack:
4: iload 1
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeLo:[I
arraylength
if_icmplt 11
5: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeLo:[I
arraylength
bipush 8
iadd
newarray 10
astore 4
start local 4 6: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeLo:[I
iconst_0
aload 4
iconst_0
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeLo:[I
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
aload 4
putfield org.joni.Regex.repeatRangeLo:[I
8: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeHi:[I
arraylength
bipush 8
iadd
newarray 10
astore 4
9: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeHi:[I
iconst_0
aload 4
iconst_0
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeHi:[I
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
aload 4
putfield org.joni.Regex.repeatRangeHi:[I
end local 4 11: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeLo:[I
iload 1
iload 2
iastore
12: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.repeatRangeHi:[I
iload 1
iload 3
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifeq 13
ldc 2147483647
goto 14
StackMap locals: org.joni.ArrayCompiler int int int
StackMap stack: int[] int
13: iload 3
StackMap locals: org.joni.ArrayCompiler int int int
StackMap stack: int[] int int
14: iastore
15: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/joni/ArrayCompiler;
0 16 1 id I
0 16 2 lower I
0 16 3 upper I
6 11 4 tmp [I
MethodParameters:
Name Flags
id
lower
upper
private void compileRangeRepeatNode(org.joni.ast.QuantifierNode, int, int);
descriptor: (Lorg/joni/ast/QuantifierNode;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
1: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.numRepeat:I
istore 4
start local 4 2: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 3
bipush 66
goto 4
StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int
StackMap stack: org.joni.ArrayCompiler
3: bipush 67
StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int
StackMap stack: org.joni.ArrayCompiler int
4: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
5: aload 0
iload 4
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
6: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
dup
getfield org.joni.Regex.numRepeat:I
iconst_1
iadd
putfield org.joni.Regex.numRepeat:I
7: aload 0
iload 2
iconst_2
iadd
invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
8: aload 0
iload 4
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
aload 1
getfield org.joni.ast.QuantifierNode.upper:I
invokevirtual org.joni.ArrayCompiler.entryRepeatRange:(III)V
9: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 3
invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
10: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.numCall:I
ifgt 11
aload 1
invokevirtual org.joni.ast.QuantifierNode.isInRepeat:()Z
ifeq 15
11: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 12
bipush 70
goto 13
StackMap locals:
StackMap stack: org.joni.ArrayCompiler
12: bipush 71
StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int
StackMap stack: org.joni.ArrayCompiler int
13: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
14: goto 18
15: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 16
bipush 68
goto 17
StackMap locals:
StackMap stack: org.joni.ArrayCompiler
16: bipush 69
StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int
StackMap stack: org.joni.ArrayCompiler int
17: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
18: StackMap locals:
StackMap stack:
aload 0
iload 4
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
19: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/joni/ArrayCompiler;
0 20 1 qn Lorg/joni/ast/QuantifierNode;
0 20 2 targetLen I
0 20 3 emptyInfo I
2 20 4 numRepeat I
MethodParameters:
Name Flags
qn
targetLen
emptyInfo
private static boolean cknOn(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 ckn I
MethodParameters:
Name Flags
ckn
private int compileCECLengthQuantifierNode(org.joni.ast.QuantifierNode);
descriptor: (Lorg/joni/ast/QuantifierNode;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
istore 2
start local 2 1: aload 1
getfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
istore 3
start local 3 2: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 4
start local 4 3: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.numCombExpCheck:I
ifle 4
aload 1
getfield org.joni.ast.QuantifierNode.combExpCheckNum:I
goto 5
StackMap locals: int int int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 5
start local 5 6: iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 7
iconst_1
goto 8
StackMap locals: int
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 6
start local 6 9: aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.getType:()I
iconst_3
if_icmpne 14
10: aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 14
iload 2
ifeq 14
11: aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
ifnull 13
iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifne 13
12: iconst_2
iload 4
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
imul
iadd
iload 6
iadd
ireturn
13: StackMap locals: int
StackMap stack:
iconst_1
iload 4
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
imul
iadd
iload 6
iadd
ireturn
14: StackMap locals:
StackMap stack:
iload 3
ifeq 17
15: iload 4
iconst_4
iadd
istore 7
start local 7 16: goto 18
end local 7 17: StackMap locals:
StackMap stack:
iload 4
istore 7
start local 7 18: StackMap locals: int
StackMap stack:
iload 2
ifeq 32
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmpgt 32
19: aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 26
20: aload 1
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmpne 23
21: iconst_2
istore 8
start local 8 22: goto 24
end local 8 23: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 24: StackMap locals: int
StackMap stack:
iload 8
iconst_2
iload 6
iadd
iload 7
iadd
iconst_2
iadd
iadd
istore 8
25: goto 53
end local 8 26: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
ifne 29
27: iconst_2
istore 8
start local 8 28: goto 30
end local 8 29: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 30: StackMap locals: int
StackMap stack:
iload 8
iload 7
iconst_2
iadd
iload 6
iadd
iadd
istore 8
31: goto 53
end local 8 StackMap locals:
StackMap stack:
32: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
ifne 38
33: aload 1
getfield org.joni.ast.QuantifierNode.isRefered:Z
ifeq 36
34: iconst_2
iload 4
iadd
istore 8
start local 8 35: goto 53
end local 8 36: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 37: goto 53
end local 8 StackMap locals:
StackMap stack:
38: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmpne 47
aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 47
39: aload 1
getfield org.joni.ast.QuantifierNode.lower:I
ifne 45
40: iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 43
41: iconst_3
iload 4
iadd
istore 8
start local 8 42: goto 53
end local 8 43: StackMap locals:
StackMap stack:
iconst_2
iload 4
iadd
istore 8
start local 8 44: goto 53
end local 8 45: StackMap locals:
StackMap stack:
iload 4
istore 8
start local 8 46: goto 53
end local 8 StackMap locals:
StackMap stack:
47: aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifne 50
aload 1
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmpne 50
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
ifne 50
48: iconst_2
iload 6
iadd
iconst_2
iadd
iload 4
iadd
istore 8
start local 8 49: goto 53
end local 8 50: StackMap locals:
StackMap stack:
iconst_2
iload 7
iadd
iconst_1
iadd
iconst_1
iadd
iconst_1
iadd
istore 8
start local 8 51: iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 53
52: iinc 8 2
53: StackMap locals: int
StackMap stack:
iload 8
ireturn
end local 8 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 54 0 this Lorg/joni/ArrayCompiler;
0 54 1 qn Lorg/joni/ast/QuantifierNode;
1 54 2 infinite Z
2 54 3 emptyInfo I
3 54 4 tlen I
6 54 5 ckn I
9 54 6 cklen I
16 17 7 modTLen I
18 54 7 modTLen I
22 23 8 len I
24 26 8 len I
28 29 8 len I
30 32 8 len I
35 36 8 len I
37 38 8 len I
42 43 8 len I
44 45 8 len I
46 47 8 len I
49 50 8 len I
51 54 8 len I
MethodParameters:
Name Flags
qn
protected void compileCECQuantifierNode(org.joni.ast.QuantifierNode);
descriptor: (Lorg/joni/ast/QuantifierNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
1: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
istore 2
start local 2 2: aload 1
getfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
istore 3
start local 3 3: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 4
start local 4 4: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.numCombExpCheck:I
ifle 5
aload 1
getfield org.joni.ast.QuantifierNode.combExpCheckNum:I
goto 6
StackMap locals: int int int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: aload 1
invokevirtual org.joni.ast.QuantifierNode.isAnyCharStar:()Z
ifeq 32
8: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
9: aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
ifnull 19
iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifne 19
10: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isMultiline:(I)Z
ifeq 13
11: aload 0
bipush 27
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
12: goto 14
13: StackMap locals: int
StackMap stack:
aload 0
bipush 26
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
14: StackMap locals:
StackMap stack:
iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 16
15: aload 0
iload 5
invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
16: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
checkcast org.joni.ast.StringNode
astore 6
start local 6 17: aload 0
aload 6
getfield org.joni.ast.StringNode.bytes:[B
aload 6
getfield org.joni.ast.StringNode.p:I
iconst_1
invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
18: return
end local 6 19: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isMultiline:(I)Z
ifeq 25
20: iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 23
21: aload 0
bipush 95
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
22: goto 29
23: StackMap locals:
StackMap stack:
aload 0
bipush 25
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
24: goto 29
25: StackMap locals:
StackMap stack:
iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 28
26: aload 0
bipush 94
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
27: goto 29
28: StackMap locals:
StackMap stack:
aload 0
bipush 24
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
29: StackMap locals:
StackMap stack:
iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 31
30: aload 0
iload 5
invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
31: StackMap locals:
StackMap stack:
return
32: StackMap locals:
StackMap stack:
iload 3
ifeq 35
33: iload 4
iconst_4
iadd
istore 6
start local 6 34: goto 36
end local 6 35: StackMap locals:
StackMap stack:
iload 4
istore 6
start local 6 36: StackMap locals: int
StackMap stack:
iload 2
ifeq 65
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmpgt 65
37: aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 55
38: aload 1
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmpne 42
39: aload 0
bipush 61
iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 40
iconst_3
goto 41
40: StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int int int
StackMap stack: org.joni.ArrayCompiler int
iconst_2
41: StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int int int
StackMap stack: org.joni.ArrayCompiler int int
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
42: StackMap locals:
StackMap stack:
iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 47
43: aload 0
bipush 91
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
44: aload 0
iload 5
invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
45: aload 0
iload 6
iconst_2
iadd
invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
46: goto 48
47: StackMap locals:
StackMap stack:
aload 0
bipush 62
iload 6
iconst_2
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
48: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 3
invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
49: aload 0
bipush 61
iload 6
iconst_2
iadd
iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 51
50: iconst_3
goto 52
51: StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int int int
StackMap stack: org.joni.ArrayCompiler int int
iconst_2
StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int int int
StackMap stack: org.joni.ArrayCompiler int int int
52: iadd
ineg
53: invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
54: goto 94
55: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
ifne 57
56: aload 0
bipush 61
iload 6
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
57: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 3
invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
58: iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 63
59: aload 0
bipush 92
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
60: aload 0
iload 5
invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
61: aload 0
iload 6
iconst_3
iadd
ineg
invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
62: goto 94
63: StackMap locals:
StackMap stack:
aload 0
bipush 62
iload 6
iconst_2
iadd
ineg
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
64: goto 94
StackMap locals:
StackMap stack:
65: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
ifne 70
66: aload 1
getfield org.joni.ast.QuantifierNode.isRefered:Z
ifeq 94
67: aload 0
bipush 61
iload 4
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
68: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
69: goto 94
StackMap locals:
StackMap stack:
70: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmpne 80
aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 80
71: aload 1
getfield org.joni.ast.QuantifierNode.lower:I
ifne 78
72: iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 77
73: aload 0
bipush 91
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
74: aload 0
iload 5
invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
75: aload 0
iload 4
invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
76: goto 78
77: StackMap locals:
StackMap stack:
aload 0
bipush 62
iload 4
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
78: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
79: goto 94
StackMap locals:
StackMap stack:
80: aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifne 90
aload 1
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmpne 90
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
ifne 90
81: iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 86
82: aload 0
bipush 91
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
83: aload 0
iload 5
invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
84: aload 0
iconst_2
invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
85: goto 87
86: StackMap locals:
StackMap stack:
aload 0
bipush 62
iconst_2
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
87: StackMap locals:
StackMap stack:
aload 0
bipush 61
iload 4
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
88: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
89: goto 94
90: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 6
iload 3
invokevirtual org.joni.ArrayCompiler.compileRangeRepeatNode:(Lorg/joni/ast/QuantifierNode;II)V
91: iload 5
invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
ifeq 94
92: aload 0
bipush 93
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
93: aload 0
iload 5
invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
94: StackMap locals:
StackMap stack:
return
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 95 0 this Lorg/joni/ArrayCompiler;
0 95 1 qn Lorg/joni/ast/QuantifierNode;
2 95 2 infinite Z
3 95 3 emptyInfo I
4 95 4 tlen I
7 95 5 ckn I
17 19 6 sn Lorg/joni/ast/StringNode;
34 35 6 modTLen I
36 95 6 modTLen I
MethodParameters:
Name Flags
qn
private int compileNonCECLengthQuantifierNode(org.joni.ast.QuantifierNode);
descriptor: (Lorg/joni/ast/QuantifierNode;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
istore 2
start local 2 1: aload 1
getfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
istore 3
start local 3 2: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 4
start local 4 3: aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.getType:()I
iconst_3
if_icmpne 8
4: aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 8
iload 2
ifeq 8
5: aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
ifnull 7
6: iconst_2
iload 4
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
imul
iadd
ireturn
7: StackMap locals: int int int
StackMap stack:
iconst_1
iload 4
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
imul
iadd
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 9: iload 3
ifeq 12
10: iload 4
iconst_4
iadd
istore 5
11: goto 13
12: StackMap locals: int
StackMap stack:
iload 4
istore 5
13: StackMap locals:
StackMap stack:
iload 2
ifeq 29
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmple 14
iload 4
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
imul
bipush 50
if_icmpgt 29
14: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmpne 17
iload 4
bipush 50
if_icmple 17
15: iconst_2
istore 6
start local 6 16: goto 18
end local 6 17: StackMap locals:
StackMap stack:
iload 4
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
imul
istore 6
start local 6 18: StackMap locals: int
StackMap stack:
aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 27
19: aload 1
getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
ifnull 22
20: iload 6
iconst_3
iload 5
iadd
iconst_2
iadd
iadd
istore 6
21: goto 41
StackMap locals:
StackMap stack:
22: aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
ifnull 25
23: iload 6
iconst_3
iload 5
iadd
iconst_2
iadd
iadd
istore 6
24: goto 41
25: StackMap locals:
StackMap stack:
iload 6
iconst_2
iload 5
iadd
iconst_2
iadd
iadd
istore 6
26: goto 41
27: StackMap locals:
StackMap stack:
iload 6
iconst_2
iload 5
iadd
iconst_2
iadd
iadd
istore 6
28: goto 41
end local 6 StackMap locals:
StackMap stack:
29: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
ifne 32
aload 1
getfield org.joni.ast.QuantifierNode.isRefered:Z
ifeq 32
30: iconst_2
iload 4
iadd
istore 6
start local 6 31: goto 41
end local 6 StackMap locals:
StackMap stack:
32: iload 2
ifne 37
aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 37
33: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmpeq 34
iload 4
iconst_2
iadd
aload 1
getfield org.joni.ast.QuantifierNode.upper:I
imul
bipush 50
if_icmpgt 37
34: StackMap locals:
StackMap stack:
iload 4
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
imul
istore 6
start local 6 35: iload 6
iconst_2
iload 4
iadd
aload 1
getfield org.joni.ast.QuantifierNode.upper:I
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
isub
imul
iadd
istore 6
36: goto 41
end local 6 StackMap locals:
StackMap stack:
37: aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifne 40
aload 1
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmpne 40
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
ifne 40
38: iconst_4
iload 4
iadd
istore 6
start local 6 39: goto 41
end local 6 40: StackMap locals:
StackMap stack:
iconst_2
iload 5
iadd
iconst_1
iadd
iconst_1
iadd
iconst_1
iadd
istore 6
start local 6 41: StackMap locals: int
StackMap stack:
iload 6
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 42 0 this Lorg/joni/ArrayCompiler;
0 42 1 qn Lorg/joni/ast/QuantifierNode;
1 42 2 infinite Z
2 42 3 emptyInfo I
3 42 4 tlen I
9 42 5 modTLen I
16 17 6 len I
18 29 6 len I
31 32 6 len I
35 37 6 len I
39 40 6 len I
41 42 6 len I
MethodParameters:
Name Flags
qn
protected void compileNonCECQuantifierNode(org.joni.ast.QuantifierNode);
descriptor: (Lorg/joni/ast/QuantifierNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
1: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
istore 2
start local 2 2: aload 1
getfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
istore 3
start local 3 3: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 4
start local 4 4: aload 1
invokevirtual org.joni.ast.QuantifierNode.isAnyCharStar:()Z
ifeq 19
5: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
6: aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
ifnull 14
7: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isMultiline:(I)Z
ifeq 10
8: aload 0
bipush 27
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
9: goto 11
10: StackMap locals: int int int
StackMap stack:
aload 0
bipush 26
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
11: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
checkcast org.joni.ast.StringNode
astore 5
start local 5 12: aload 0
aload 5
getfield org.joni.ast.StringNode.bytes:[B
aload 5
getfield org.joni.ast.StringNode.p:I
iconst_1
invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
13: return
end local 5 14: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isMultiline:(I)Z
ifeq 17
15: aload 0
bipush 25
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
16: goto 18
17: StackMap locals:
StackMap stack:
aload 0
bipush 24
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
18: StackMap locals:
StackMap stack:
return
19: StackMap locals:
StackMap stack:
iload 3
ifeq 22
20: iload 4
iconst_4
iadd
istore 5
start local 5 21: goto 23
end local 5 22: StackMap locals:
StackMap stack:
iload 4
istore 5
start local 5 23: StackMap locals: int
StackMap stack:
iload 2
ifeq 60
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmple 24
iload 4
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
imul
bipush 50
if_icmpgt 60
24: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmpne 36
iload 4
bipush 50
if_icmple 36
25: aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 34
26: aload 1
getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
ifnull 29
27: aload 0
bipush 61
iconst_3
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
28: goto 37
StackMap locals:
StackMap stack:
29: aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
ifnull 32
30: aload 0
bipush 61
iconst_3
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
31: goto 37
32: StackMap locals:
StackMap stack:
aload 0
bipush 61
iconst_2
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
33: goto 37
34: StackMap locals:
StackMap stack:
aload 0
bipush 61
iconst_2
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
35: goto 37
36: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
37: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 56
38: aload 1
getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
ifnull 45
39: aload 0
bipush 64
iload 5
iconst_2
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
40: aload 1
getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
checkcast org.joni.ast.StringNode
astore 6
start local 6 41: aload 0
aload 6
getfield org.joni.ast.StringNode.bytes:[B
aload 6
getfield org.joni.ast.StringNode.p:I
iconst_1
invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
42: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 3
invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
43: aload 0
bipush 61
iload 5
iconst_2
iadd
iconst_3
iadd
ineg
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
end local 6 44: goto 81
StackMap locals:
StackMap stack:
45: aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
ifnull 52
46: aload 0
bipush 65
iload 5
iconst_2
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
47: aload 1
getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
checkcast org.joni.ast.StringNode
astore 6
start local 6 48: aload 0
aload 6
getfield org.joni.ast.StringNode.bytes:[B
aload 6
getfield org.joni.ast.StringNode.p:I
iconst_1
invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
49: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 3
invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
50: aload 0
bipush 61
iload 5
iconst_2
iadd
iconst_3
iadd
ineg
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
end local 6 51: goto 81
52: StackMap locals:
StackMap stack:
aload 0
bipush 62
iload 5
iconst_2
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
53: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 3
invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
54: aload 0
bipush 61
iload 5
iconst_2
iadd
iconst_2
iadd
ineg
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
55: goto 81
56: StackMap locals:
StackMap stack:
aload 0
bipush 61
iload 5
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
57: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 3
invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
58: aload 0
bipush 62
iload 5
iconst_2
iadd
ineg
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
59: goto 81
StackMap locals:
StackMap stack:
60: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
ifne 64
aload 1
getfield org.joni.ast.QuantifierNode.isRefered:Z
ifeq 64
61: aload 0
bipush 61
iload 4
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
62: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
63: goto 81
StackMap locals:
StackMap stack:
64: iload 2
ifne 75
aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 75
65: aload 1
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmpeq 66
iload 4
iconst_2
iadd
aload 1
getfield org.joni.ast.QuantifierNode.upper:I
imul
bipush 50
if_icmpgt 75
66: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.QuantifierNode.upper:I
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
isub
istore 6
start local 6 67: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
68: iconst_0
istore 7
start local 7 69: goto 73
70: StackMap locals: int int
StackMap stack:
aload 0
bipush 62
iload 6
iload 7
isub
iload 4
imul
iload 6
iload 7
isub
iconst_1
isub
iconst_2
imul
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
71: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
72: iinc 7 1
StackMap locals:
StackMap stack:
73: iload 7
iload 6
if_icmplt 70
end local 7 end local 6 74: goto 81
StackMap locals:
StackMap stack:
75: aload 1
getfield org.joni.ast.QuantifierNode.greedy:Z
ifne 80
aload 1
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmpne 80
aload 1
getfield org.joni.ast.QuantifierNode.lower:I
ifne 80
76: aload 0
bipush 62
iconst_2
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
77: aload 0
bipush 61
iload 4
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
78: aload 0
aload 1
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
79: goto 81
80: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 5
iload 3
invokevirtual org.joni.ArrayCompiler.compileRangeRepeatNode:(Lorg/joni/ast/QuantifierNode;II)V
81: StackMap locals:
StackMap stack:
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 82 0 this Lorg/joni/ArrayCompiler;
0 82 1 qn Lorg/joni/ast/QuantifierNode;
2 82 2 infinite Z
3 82 3 emptyInfo I
4 82 4 tlen I
12 14 5 sn Lorg/joni/ast/StringNode;
21 22 5 modTLen I
23 82 5 modTLen I
41 44 6 sn Lorg/joni/ast/StringNode;
48 51 6 sn Lorg/joni/ast/StringNode;
67 74 6 n I
69 74 7 i I
MethodParameters:
Name Flags
qn
private int compileLengthOptionNode(org.joni.ast.EncloseNode);
descriptor: (Lorg/joni/ast/EncloseNode;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
istore 2
start local 2 1: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
aload 1
getfield org.joni.ast.EncloseNode.option:I
putfield org.joni.Regex.options:I
2: aload 0
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 3
start local 3 3: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iload 2
putfield org.joni.Regex.options:I
4: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/joni/ArrayCompiler;
0 5 1 node Lorg/joni/ast/EncloseNode;
1 5 2 prev I
3 5 3 tlen I
MethodParameters:
Name Flags
node
protected void compileOptionNode(org.joni.ast.EncloseNode);
descriptor: (Lorg/joni/ast/EncloseNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
istore 2
start local 2 1: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
aload 1
getfield org.joni.ast.EncloseNode.option:I
putfield org.joni.Regex.options:I
2: aload 0
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
3: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iload 2
putfield org.joni.Regex.options:I
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/joni/ArrayCompiler;
0 5 1 node Lorg/joni/ast/EncloseNode;
1 5 2 prev I
MethodParameters:
Name Flags
node
private int compileLengthEncloseNode(org.joni.ast.EncloseNode);
descriptor: (Lorg/joni/ast/EncloseNode;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.joni.ast.EncloseNode.isOption:()Z
ifeq 2
1: aload 0
aload 1
invokevirtual org.joni.ArrayCompiler.compileLengthOptionNode:(Lorg/joni/ast/EncloseNode;)I
ireturn
2: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
ifnull 5
3: aload 0
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
start local 2 4: goto 6
end local 2 5: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 6: StackMap locals: int
StackMap stack:
aload 1
getfield org.joni.ast.EncloseNode.type:I
lookupswitch { // 4
1: 7
4: 32
8: 39
16: 52
default: 54
}
7: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.joni.ast.EncloseNode.isCalled:()Z
ifeq 18
8: iconst_2
iload 2
iadd
iconst_2
iadd
iconst_2
iadd
iconst_1
iadd
istore 3
start local 3 9: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemEnd:I
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 14
10: iload 3
aload 1
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 11
iconst_2
goto 12
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
StackMap stack: int
11: iconst_2
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
StackMap stack: int int
12: iadd
istore 3
13: goto 56
14: StackMap locals:
StackMap stack:
iload 3
aload 1
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 15
iconst_2
goto 16
StackMap locals:
StackMap stack: int
15: iconst_2
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
StackMap stack: int int
16: iadd
istore 3
17: goto 56
end local 3 StackMap locals:
StackMap stack:
18: aload 1
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 24
19: iconst_2
istore 3
start local 3 20: iload 3
iload 2
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemEnd:I
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 21
iconst_2
goto 22
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
StackMap stack: int int
21: iconst_2
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
StackMap stack: int int int
22: iadd
iadd
istore 3
23: goto 56
end local 3 24: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemStart:I
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 27
25: iconst_2
istore 3
start local 3 26: goto 28
end local 3 27: StackMap locals:
StackMap stack:
iconst_2
istore 3
start local 3 28: StackMap locals: int
StackMap stack:
iload 3
iload 2
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemEnd:I
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 29
iconst_2
goto 30
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
StackMap stack: int int
29: iconst_2
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
StackMap stack: int int int
30: iadd
iadd
istore 3
31: goto 56
end local 3 32: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.joni.ast.EncloseNode.isStopBtSimpleRepeat:()Z
ifeq 37
33: aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
checkcast org.joni.ast.QuantifierNode
astore 4
start local 4 34: aload 0
aload 4
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
35: iload 2
aload 4
getfield org.joni.ast.QuantifierNode.lower:I
imul
iconst_2
iadd
iload 2
iadd
iconst_1
iadd
iconst_2
iadd
istore 3
end local 4 start local 3 36: goto 56
end local 3 37: StackMap locals:
StackMap stack:
iconst_1
iload 2
iadd
iconst_1
iadd
istore 3
start local 3 38: goto 56
end local 3 39: StackMap locals:
StackMap stack:
iconst_3
istore 3
start local 3 40: aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.getType:()I
bipush 9
if_icmpne 50
41: aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
checkcast org.joni.ast.ListNode
astore 4
start local 4 42: aload 0
aload 4
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
43: iload 3
iload 2
iconst_2
iadd
iadd
istore 3
44: aload 4
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
ifnonnull 45
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
45: StackMap locals: int org.joni.ast.ListNode
StackMap stack:
aload 4
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
astore 4
46: aload 0
aload 4
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
47: iload 3
iload 2
iadd
istore 3
48: aload 4
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
ifnull 56
aload 0
ldc "invalid conditional pattern"
invokevirtual org.joni.ArrayCompiler.newSyntaxException:(Ljava/lang/String;)V
end local 4 49: goto 56
50: StackMap locals:
StackMap stack:
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
51: goto 56
end local 3 52: StackMap locals:
StackMap stack:
iconst_3
iload 2
iadd
iconst_1
iadd
istore 3
start local 3 53: goto 56
end local 3 54: StackMap locals:
StackMap stack:
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
55: iconst_0
ireturn
start local 3 56: StackMap locals: int
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lorg/joni/ArrayCompiler;
0 57 1 node Lorg/joni/ast/EncloseNode;
4 5 2 tlen I
6 57 2 tlen I
9 18 3 len I
20 24 3 len I
26 27 3 len I
28 32 3 len I
36 37 3 len I
38 39 3 len I
40 52 3 len I
53 54 3 len I
56 57 3 len I
34 36 4 qn Lorg/joni/ast/QuantifierNode;
42 49 4 x Lorg/joni/ast/ListNode;
MethodParameters:
Name Flags
node
protected void compileEncloseNode(org.joni.ast.EncloseNode);
descriptor: (Lorg/joni/ast/EncloseNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
getfield org.joni.ast.EncloseNode.type:I
lookupswitch { // 4
1: 1
4: 50
8: 64
16: 82
default: 89
}
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.joni.ast.EncloseNode.isCalled:()Z
ifeq 18
2: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
3: aload 0
bipush 88
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
4: aload 1
aload 0
getfield org.joni.ArrayCompiler.codeLength:I
iconst_1
iadd
iconst_2
iadd
putfield org.joni.ast.EncloseNode.callAddr:I
5: aload 1
invokevirtual org.joni.ast.EncloseNode.setAddrFixed:()V
6: aload 0
aload 1
getfield org.joni.ast.EncloseNode.callAddr:I
invokevirtual org.joni.ArrayCompiler.addAbsAddr:(I)V
7: aload 0
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
start local 2 8: iinc 2 3
9: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemEnd:I
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 14
10: iload 2
aload 1
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 11
iconst_2
goto 12
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int
StackMap stack: int
11: iconst_2
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int
StackMap stack: int int
12: iadd
istore 2
13: goto 17
14: StackMap locals:
StackMap stack:
iload 2
aload 1
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 15
iconst_2
goto 16
StackMap locals:
StackMap stack: int
15: iconst_2
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int
StackMap stack: int int
16: iadd
istore 2
17: StackMap locals:
StackMap stack:
aload 0
bipush 61
iload 2
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
end local 2 18: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemStart:I
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 22
19: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
20: aload 0
bipush 54
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
21: goto 23
22: StackMap locals:
StackMap stack:
aload 0
bipush 53
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
23: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
24: aload 0
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
25: aload 1
invokevirtual org.joni.ast.EncloseNode.isCalled:()Z
ifeq 37
26: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemEnd:I
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 31
27: aload 0
aload 1
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 28
bipush 56
goto 29
StackMap locals:
StackMap stack: org.joni.ArrayCompiler
28: bipush 55
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode
StackMap stack: org.joni.ArrayCompiler int
29: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
30: goto 34
31: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 32
bipush 58
goto 33
StackMap locals:
StackMap stack: org.joni.ArrayCompiler
32: bipush 57
StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode
StackMap stack: org.joni.ArrayCompiler int
33: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
34: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
35: aload 0
bipush 89
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
36: goto 90
StackMap locals:
StackMap stack:
37: aload 1
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 44
38: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemEnd:I
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 41
39: aload 0
bipush 56
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
40: goto 42
41: StackMap locals:
StackMap stack:
aload 0
bipush 58
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
42: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
43: goto 90
44: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemEnd:I
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 47
45: aload 0
bipush 55
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
46: goto 48
47: StackMap locals:
StackMap stack:
aload 0
bipush 57
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
48: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
49: goto 90
50: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
51: aload 1
invokevirtual org.joni.ast.EncloseNode.isStopBtSimpleRepeat:()Z
ifeq 60
52: aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
checkcast org.joni.ast.QuantifierNode
astore 3
start local 3 53: aload 0
aload 3
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
aload 3
getfield org.joni.ast.QuantifierNode.lower:I
invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
54: aload 0
aload 3
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
start local 2 55: aload 0
bipush 62
iload 2
iconst_1
iadd
iconst_2
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
56: aload 0
aload 3
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
57: aload 0
bipush 63
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
58: aload 0
bipush 61
iconst_2
iload 2
iadd
iconst_1
iadd
iconst_2
iadd
ineg
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
end local 3 59: goto 90
end local 2 60: StackMap locals:
StackMap stack:
aload 0
bipush 80
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
61: aload 0
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
62: aload 0
bipush 81
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
63: goto 90
64: StackMap locals:
StackMap stack:
aload 0
bipush 90
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
65: aload 0
aload 1
getfield org.joni.ast.EncloseNode.regNum:I
invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
66: aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.getType:()I
bipush 9
if_icmpne 80
67: aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
checkcast org.joni.ast.ListNode
astore 3
start local 3 68: aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
start local 2 69: aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
ifnonnull 70
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
70: StackMap locals: int org.joni.ast.ListNode
StackMap stack:
aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
astore 3
71: aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 4
start local 4 72: aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
ifnull 73
aload 0
ldc "invalid conditional pattern"
invokevirtual org.joni.ArrayCompiler.newSyntaxException:(Ljava/lang/String;)V
73: StackMap locals: int
StackMap stack:
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
checkcast org.joni.ast.ListNode
astore 3
74: aload 0
iload 2
iconst_2
iadd
invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
75: aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
76: aload 0
bipush 61
iload 4
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
77: aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
astore 3
78: aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
end local 4 end local 3 79: goto 90
end local 2 80: StackMap locals:
StackMap stack:
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
81: goto 90
82: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
83: aload 0
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
start local 2 84: aload 0
bipush 85
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
85: aload 0
bipush 86
iload 2
iconst_1
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
86: aload 0
aload 1
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
87: aload 0
bipush 87
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
88: goto 90
end local 2 89: StackMap locals:
StackMap stack:
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
90: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 91 0 this Lorg/joni/ArrayCompiler;
0 91 1 node Lorg/joni/ast/EncloseNode;
8 18 2 len I
55 60 2 len I
69 80 2 len I
84 89 2 len I
53 59 3 qn Lorg/joni/ast/QuantifierNode;
68 79 3 x Lorg/joni/ast/ListNode;
72 79 4 len2 I
MethodParameters:
Name Flags
node
private int compileLengthAnchorNode(org.joni.ast.AnchorNode);
descriptor: (Lorg/joni/ast/AnchorNode;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
ifnull 3
1: aload 0
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 4: StackMap locals: int
StackMap stack:
aload 1
getfield org.joni.ast.AnchorNode.type:I
lookupswitch { // 4
1024: 5
2048: 7
4096: 9
8192: 11
default: 13
}
5: StackMap locals:
StackMap stack:
iconst_1
iload 2
iadd
iconst_1
iadd
istore 3
start local 3 6: goto 14
end local 3 7: StackMap locals:
StackMap stack:
iconst_2
iload 2
iadd
iconst_1
iadd
istore 3
start local 3 8: goto 14
end local 3 9: StackMap locals:
StackMap stack:
iconst_2
iload 2
iadd
istore 3
start local 3 10: goto 14
end local 3 11: StackMap locals:
StackMap stack:
iconst_3
iload 2
iadd
iconst_1
iadd
istore 3
start local 3 12: goto 14
end local 3 13: StackMap locals:
StackMap stack:
iconst_1
istore 3
start local 3 14: StackMap locals: int
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/joni/ArrayCompiler;
0 15 1 node Lorg/joni/ast/AnchorNode;
2 3 2 tlen I
4 15 2 tlen I
6 7 3 len I
8 9 3 len I
10 11 3 len I
12 13 3 len I
14 15 3 len I
MethodParameters:
Name Flags
node
protected void compileAnchorNode(org.joni.ast.AnchorNode);
descriptor: (Lorg/joni/ast/AnchorNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getfield org.joni.ast.AnchorNode.type:I
lookupswitch { // 15
1: 1
2: 3
4: 6
8: 2
16: 5
32: 4
64: 7
128: 12
256: 17
512: 22
1024: 29
2048: 34
4096: 40
8192: 49
65536: 27
default: 61
}
1: StackMap locals:
StackMap stack:
aload 0
bipush 40
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
goto 62
2: StackMap locals:
StackMap stack:
aload 0
bipush 41
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
goto 62
3: StackMap locals:
StackMap stack:
aload 0
bipush 42
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
goto 62
4: StackMap locals:
StackMap stack:
aload 0
bipush 43
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
goto 62
5: StackMap locals:
StackMap stack:
aload 0
bipush 44
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
goto 62
6: StackMap locals:
StackMap stack:
aload 0
bipush 45
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
goto 62
7: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.AnchorNode.asciiRange:Z
ifeq 10
8: aload 0
bipush 36
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
9: goto 62
10: StackMap locals:
StackMap stack:
aload 0
bipush 30
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
11: goto 62
12: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.AnchorNode.asciiRange:Z
ifeq 15
13: aload 0
bipush 37
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
14: goto 62
15: StackMap locals:
StackMap stack:
aload 0
bipush 31
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
16: goto 62
17: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.AnchorNode.asciiRange:Z
ifeq 20
18: aload 0
bipush 38
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
19: goto 62
20: StackMap locals:
StackMap stack:
aload 0
bipush 32
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
21: goto 62
22: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.AnchorNode.asciiRange:Z
ifeq 25
23: aload 0
bipush 39
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
24: goto 62
25: StackMap locals:
StackMap stack:
aload 0
bipush 33
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
26: goto 62
27: StackMap locals:
StackMap stack:
aload 0
bipush 59
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
28: goto 62
29: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
30: aload 0
bipush 76
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
31: aload 0
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
32: aload 0
bipush 77
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
33: goto 62
34: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
35: aload 0
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
start local 2 36: aload 0
bipush 78
iload 2
iconst_1
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
37: aload 0
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
38: aload 0
bipush 79
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
39: goto 62
end local 2 40: StackMap locals:
StackMap stack:
aload 0
bipush 82
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
41: aload 1
getfield org.joni.ast.AnchorNode.charLength:I
ifge 45
42: aload 0
getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;)I
istore 3
start local 3 43: aload 0
getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
getfield org.joni.Analyser.returnCode:I
ifeq 46
aload 0
ldc "invalid pattern in look-behind"
invokevirtual org.joni.ArrayCompiler.newSyntaxException:(Ljava/lang/String;)V
44: goto 46
end local 3 45: StackMap locals:
StackMap stack:
aload 1
getfield org.joni.ast.AnchorNode.charLength:I
istore 3
start local 3 46: StackMap locals: org.joni.ArrayCompiler org.joni.ast.AnchorNode top int
StackMap stack:
aload 0
iload 3
invokevirtual org.joni.ArrayCompiler.addLength:(I)V
47: aload 0
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
48: goto 62
end local 3 49: StackMap locals: org.joni.ArrayCompiler org.joni.ast.AnchorNode
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.requireStack:Z
50: aload 0
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
istore 2
start local 2 51: aload 0
bipush 83
iload 2
iconst_1
iadd
invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
52: aload 1
getfield org.joni.ast.AnchorNode.charLength:I
ifge 56
53: aload 0
getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;)I
istore 3
start local 3 54: aload 0
getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
getfield org.joni.Analyser.returnCode:I
ifeq 57
aload 0
ldc "invalid pattern in look-behind"
invokevirtual org.joni.ArrayCompiler.newSyntaxException:(Ljava/lang/String;)V
55: goto 57
end local 3 56: StackMap locals: int
StackMap stack:
aload 1
getfield org.joni.ast.AnchorNode.charLength:I
istore 3
start local 3 57: StackMap locals: int
StackMap stack:
aload 0
iload 3
invokevirtual org.joni.ArrayCompiler.addLength:(I)V
58: aload 0
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
59: aload 0
bipush 84
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
60: goto 62
end local 3 end local 2 61: StackMap locals:
StackMap stack:
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
62: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Lorg/joni/ArrayCompiler;
0 63 1 node Lorg/joni/ast/AnchorNode;
36 40 2 len I
51 61 2 len I
43 45 3 n I
46 49 3 n I
54 56 3 n I
57 61 3 n I
MethodParameters:
Name Flags
node
private int compileLengthTree(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 0 - 10
0: 13
1: 19
2: 21
3: 21
4: 23
5: 39
6: 41
7: 43
8: 2
9: 6
10: 37
default: 45
}
2: StackMap locals: int
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 3
start local 3 3: StackMap locals: org.joni.ast.ListNode
StackMap stack:
iload 2
aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
iadd
istore 2
4: aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 3
ifnonnull 3
5: goto 46
end local 3 6: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 4
start local 4 7: iconst_0
istore 5
start local 5 8: StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int top org.joni.ast.ListNode int
StackMap stack:
iload 2
aload 0
aload 4
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
iadd
istore 2
9: iinc 5 1
10: aload 4
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 4
ifnonnull 8
11: iload 2
iconst_4
iload 5
iconst_1
isub
imul
iadd
istore 2
12: goto 46
end local 5 end local 4 13: StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.StringNode
astore 6
start local 6 14: aload 6
invokevirtual org.joni.ast.StringNode.isRaw:()Z
ifeq 17
15: aload 0
aload 6
invokevirtual org.joni.ArrayCompiler.compileLengthStringRawNode:(Lorg/joni/ast/StringNode;)I
istore 2
16: goto 46
17: StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int top top top org.joni.ast.StringNode
StackMap stack:
aload 0
aload 6
invokevirtual org.joni.ArrayCompiler.compileLengthStringNode:(Lorg/joni/ast/Node;)I
istore 2
18: goto 46
end local 6 19: StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.CClassNode
invokevirtual org.joni.ArrayCompiler.compileLengthCClassNode:(Lorg/joni/ast/CClassNode;)I
istore 2
20: goto 46
21: StackMap locals:
StackMap stack:
iconst_1
istore 2
22: goto 46
23: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.BackRefNode
astore 7
start local 7 24: aload 7
invokevirtual org.joni.ast.BackRefNode.isNestLevel:()Z
ifeq 29
25: iconst_4
26: iconst_1
aload 7
getfield org.joni.ast.BackRefNode.backNum:I
imul
27: iadd
istore 2
28: goto 46
29: StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int top top top top org.joni.ast.BackRefNode
StackMap stack:
aload 7
getfield org.joni.ast.BackRefNode.backNum:I
iconst_1
if_icmpne 35
30: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isIgnoreCase:(I)Z
ifne 32
aload 7
getfield org.joni.ast.BackRefNode.back:[I
iconst_0
iaload
iconst_2
if_icmpgt 32
31: iconst_1
goto 33
StackMap locals:
StackMap stack:
32: iconst_2
33: StackMap locals:
StackMap stack: int
istore 2
34: goto 46
35: StackMap locals:
StackMap stack:
iconst_2
iconst_1
aload 7
getfield org.joni.ast.BackRefNode.backNum:I
imul
iadd
istore 2
36: goto 46
end local 7 37: StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int
StackMap stack:
iconst_2
istore 2
38: goto 46
39: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.QuantifierNode
invokevirtual org.joni.ArrayCompiler.compileNonCECLengthQuantifierNode:(Lorg/joni/ast/QuantifierNode;)I
istore 2
40: goto 46
41: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.EncloseNode
invokevirtual org.joni.ArrayCompiler.compileLengthEncloseNode:(Lorg/joni/ast/EncloseNode;)I
istore 2
42: goto 46
43: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.AnchorNode
invokevirtual org.joni.ArrayCompiler.compileLengthAnchorNode:(Lorg/joni/ast/AnchorNode;)I
istore 2
44: goto 46
45: StackMap locals:
StackMap stack:
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
46: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lorg/joni/ArrayCompiler;
0 47 1 node Lorg/joni/ast/Node;
1 47 2 len I
3 6 3 lin Lorg/joni/ast/ListNode;
7 13 4 aln Lorg/joni/ast/ListNode;
8 13 5 n I
14 19 6 sn Lorg/joni/ast/StringNode;
24 37 7 br Lorg/joni/ast/BackRefNode;
MethodParameters:
Name Flags
node
private void ensure(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.joni.ArrayCompiler.code:[I
arraylength
if_icmplt 8
1: aload 0
getfield org.joni.ArrayCompiler.code:[I
arraylength
iconst_1
ishl
istore 2
start local 2 2: goto 4
StackMap locals: int
StackMap stack:
3: iload 2
iconst_1
ishl
istore 2
StackMap locals:
StackMap stack:
4: iload 2
iload 1
if_icmple 3
5: iload 2
newarray 10
astore 3
start local 3 6: aload 0
getfield org.joni.ArrayCompiler.code:[I
iconst_0
aload 3
iconst_0
aload 0
getfield org.joni.ArrayCompiler.code:[I
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: aload 0
aload 3
putfield org.joni.ArrayCompiler.code:[I
end local 3 end local 2 8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/joni/ArrayCompiler;
0 9 1 size I
2 8 2 length I
6 8 3 tmp [I
MethodParameters:
Name Flags
size
private void addInt(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.joni.ArrayCompiler.codeLength:I
aload 0
getfield org.joni.ArrayCompiler.code:[I
arraylength
if_icmplt 4
1: aload 0
getfield org.joni.ArrayCompiler.code:[I
arraylength
iconst_1
ishl
newarray 10
astore 2
start local 2 2: aload 0
getfield org.joni.ArrayCompiler.code:[I
iconst_0
aload 2
iconst_0
aload 0
getfield org.joni.ArrayCompiler.code:[I
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 0
aload 2
putfield org.joni.ArrayCompiler.code:[I
end local 2 4: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.code:[I
aload 0
dup
getfield org.joni.ArrayCompiler.codeLength:I
dup_x1
iconst_1
iadd
putfield org.joni.ArrayCompiler.codeLength:I
iload 1
iastore
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/joni/ArrayCompiler;
0 6 1 i I
2 4 2 tmp [I
MethodParameters:
Name Flags
i
void setInt(int, int);
descriptor: (II)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 2
invokevirtual org.joni.ArrayCompiler.ensure:(I)V
1: aload 0
getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.code:[I
iload 2
iload 1
iastore
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/joni/ArrayCompiler;
0 3 1 i I
0 3 2 offset I
MethodParameters:
Name Flags
i
offset
private void addBytes(byte[], int, int);
descriptor: ([BII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 0
getfield org.joni.ArrayCompiler.codeLength:I
iload 3
iadd
invokevirtual org.joni.ArrayCompiler.ensure:(I)V
1: iload 2
iload 3
iadd
istore 4
start local 4 2: goto 4
StackMap locals: int
StackMap stack:
3: aload 0
getfield org.joni.ArrayCompiler.code:[I
aload 0
dup
getfield org.joni.ArrayCompiler.codeLength:I
dup_x1
iconst_1
iadd
putfield org.joni.ArrayCompiler.codeLength:I
aload 1
iload 2
iinc 2 1
baload
iastore
StackMap locals:
StackMap stack:
4: iload 2
iload 4
if_icmplt 3
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 Lorg/joni/ArrayCompiler;
0 6 1 bytes [B
0 6 2 p I
0 6 3 length I
2 6 4 end I
MethodParameters:
Name Flags
bytes
p
length
private void addInts(int[], int);
descriptor: ([II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
getfield org.joni.ArrayCompiler.codeLength:I
iload 2
iadd
invokevirtual org.joni.ArrayCompiler.ensure:(I)V
1: aload 1
iconst_0
aload 0
getfield org.joni.ArrayCompiler.code:[I
aload 0
getfield org.joni.ArrayCompiler.codeLength:I
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 0
dup
getfield org.joni.ArrayCompiler.codeLength:I
iload 2
iadd
putfield org.joni.ArrayCompiler.codeLength:I
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/joni/ArrayCompiler;
0 4 1 ints [I
0 4 2 length I
MethodParameters:
Name Flags
ints
length
private void addOpcode(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.addInt:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/joni/ArrayCompiler;
0 2 1 opcode I
MethodParameters:
Name Flags
opcode
private void addStateCheckNum(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.addInt:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/joni/ArrayCompiler;
0 2 1 num I
MethodParameters:
Name Flags
num
private void addRelAddr(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.addInt:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/joni/ArrayCompiler;
0 2 1 addr I
MethodParameters:
Name Flags
addr
private void addAbsAddr(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.addInt:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/joni/ArrayCompiler;
0 2 1 addr I
MethodParameters:
Name Flags
addr
private void addLength(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.addInt:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/joni/ArrayCompiler;
0 2 1 length I
MethodParameters:
Name Flags
length
private void addMemNum(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.addInt:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/joni/ArrayCompiler;
0 2 1 num I
MethodParameters:
Name Flags
num
private void addOption(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.addInt:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/joni/ArrayCompiler;
0 2 1 option I
MethodParameters:
Name Flags
option
private void addOpcodeRelAddr(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
1: aload 0
iload 2
invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/joni/ArrayCompiler;
0 3 1 opcode I
0 3 2 addr I
MethodParameters:
Name Flags
opcode
addr
private void addOpcodeOption(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
1: aload 0
iload 2
invokevirtual org.joni.ArrayCompiler.addOption:(I)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/joni/ArrayCompiler;
0 3 1 opcode I
0 3 2 option I
MethodParameters:
Name Flags
opcode
option
private void addTemplate(byte[]);
descriptor: ([B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.joni.ArrayCompiler.templateNum:I
ifne 3
1: aload 0
iconst_2
anewarray byte[]
putfield org.joni.ArrayCompiler.templates:[[B
2: goto 7
StackMap locals:
StackMap stack:
3: aload 0
getfield org.joni.ArrayCompiler.templateNum:I
aload 0
getfield org.joni.ArrayCompiler.templates:[[B
arraylength
if_icmpne 7
4: aload 0
getfield org.joni.ArrayCompiler.templateNum:I
iconst_2
imul
anewarray byte[]
astore 2
start local 2 5: aload 0
getfield org.joni.ArrayCompiler.templates:[[B
iconst_0
aload 2
iconst_0
aload 0
getfield org.joni.ArrayCompiler.templateNum:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 0
aload 2
putfield org.joni.ArrayCompiler.templates:[[B
end local 2 7: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.ArrayCompiler.templates:[[B
aload 0
dup
getfield org.joni.ArrayCompiler.templateNum:I
dup_x1
iconst_1
iadd
putfield org.joni.ArrayCompiler.templateNum:I
aload 1
aastore
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/joni/ArrayCompiler;
0 9 1 bytes [B
5 7 2 tmp [[B
MethodParameters:
Name Flags
bytes
}
SourceFile: "ArrayCompiler.java"