final class org.joni.Analyser extends org.joni.Parser
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.joni.Analyser
super_class: org.joni.Parser
{
private static final int GET_CHAR_LEN_VARLEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int GET_CHAR_LEN_TOP_ALT_VARLEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -2
private static final int RECURSION_EXIST;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int RECURSION_INFINITE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int FOUND_CALLED_NODE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int CEC_THRES_NUM_BIG_REPEAT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 512
private static final int CEC_INFINITE_NUM;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483647
private static final int CEC_IN_INFINITE_REPEAT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int CEC_IN_FINITE_REPEAT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int CEC_CONT_BIG_REPEAT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int IN_ALT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int IN_NOT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int IN_REPEAT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int IN_VAR_REPEAT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int IN_CALL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int IN_RECCALL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int EXPAND_STRING_MAX_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 100
private static final int MAX_NODE_OPT_INFO_REF_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
protected void <init>(org.joni.Regex, org.joni.Syntax, byte[], int, int, org.joni.WarnCallback);
descriptor: (Lorg/joni/Regex;Lorg/joni/Syntax;[BIILorg/joni/WarnCallback;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
aload 2
aload 3
iload 4
iload 5
aload 6
invokespecial org.joni.Parser.<init>:(Lorg/joni/Regex;Lorg/joni/Syntax;[BIILorg/joni/WarnCallback;)V
1: 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 2 0 this Lorg/joni/Analyser;
0 2 1 regex Lorg/joni/Regex;
0 2 2 syntax Lorg/joni/Syntax;
0 2 3 bytes [B
0 2 4 p I
0 2 5 end I
0 2 6 warnings Lorg/joni/WarnCallback;
MethodParameters:
Name Flags
regex
syntax
bytes
p
end
warnings
protected final void compile();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.joni.Analyser.reset:()V
1: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iconst_0
putfield org.joni.Regex.numMem:I
2: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iconst_0
putfield org.joni.Regex.numRepeat:I
3: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iconst_0
putfield org.joni.Regex.numNullCheck:I
4: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aconst_null
putfield org.joni.Regex.repeatRangeLo:[I
5: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aconst_null
putfield org.joni.Regex.repeatRangeHi:[I
6: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iconst_0
putfield org.joni.Regex.numCombExpCheck:I
7: aload 0
invokevirtual org.joni.Analyser.parseRegexp:()Lorg/joni/ast/Node;
astore 1
start local 1 8: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
putfield org.joni.Regex.numMem:I
9: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numNamed:I
ifle 14
aload 0
getfield org.joni.Analyser.syntax:Lorg/joni/Syntax;
invokevirtual org.joni.Syntax.captureOnlyNamedGroup:()Z
ifeq 14
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isCaptureGroup:(I)Z
ifne 14
10: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numNamed:I
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
if_icmpeq 13
11: aload 0
aload 1
invokevirtual org.joni.Analyser.disableNoNameGroupCapture:(Lorg/joni/ast/Node;)Lorg/joni/ast/Node;
astore 1
12: goto 14
13: StackMap locals: org.joni.ast.Node
StackMap stack:
aload 0
aload 1
invokevirtual org.joni.Analyser.numberedRefCheck:(Lorg/joni/ast/Node;)V
14: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numCall:I
ifle 21
15: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
new org.joni.UnsetAddrList
dup
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numCall:I
invokespecial org.joni.UnsetAddrList.<init>:(I)V
putfield org.joni.ScanEnvironment.unsetAddrList:Lorg/joni/UnsetAddrList;
16: aload 0
aload 1
invokevirtual org.joni.Analyser.setupSubExpCall:(Lorg/joni/ast/Node;)V
17: aload 0
aload 1
invokevirtual org.joni.Analyser.subexpRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
pop
18: aload 0
aload 1
invokevirtual org.joni.Analyser.subexpInfRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
pop
19: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numCall:I
putfield org.joni.Regex.numCall:I
20: goto 22
21: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iconst_0
putfield org.joni.Regex.numCall:I
22: StackMap locals:
StackMap stack:
aload 1
invokestatic org.joni.ast.Node.newTop:(Lorg/joni/ast/Node;)Lorg/joni/ast/Node$TopNode;
astore 2
start local 2 23: aload 0
aload 1
iconst_0
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
24: aload 2
invokevirtual org.joni.ast.Node$TopNode.getRoot:()Lorg/joni/ast/Node;
astore 1
25: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.captureHistory:I
putfield org.joni.Regex.captureHistory:I
26: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.btMemStart:I
putfield org.joni.Regex.btMemStart:I
27: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.btMemEnd:I
putfield org.joni.Regex.btMemEnd:I
28: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isFindCondition:(I)Z
ifeq 31
29: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
invokestatic org.joni.BitStatus.bsAll:()I
putfield org.joni.Regex.btMemEnd:I
30: goto 33
31: StackMap locals: org.joni.ast.Node$TopNode
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.btMemEnd:I
putfield org.joni.Regex.btMemEnd:I
32: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
dup
getfield org.joni.Regex.btMemEnd:I
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.captureHistory:I
ior
putfield org.joni.Regex.btMemEnd:I
33: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
invokevirtual org.joni.Regex.clearOptimizeInfo:()V
34: aload 0
aload 1
invokevirtual org.joni.Analyser.setOptimizedInfoFromTree:(Lorg/joni/ast/Node;)V
35: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aconst_null
putfield org.joni.ScanEnvironment.memNodes:[Lorg/joni/ast/EncloseNode;
36: new org.joni.ArrayCompiler
dup
aload 0
invokespecial org.joni.ArrayCompiler.<init>:(Lorg/joni/Analyser;)V
aload 1
invokevirtual org.joni.ArrayCompiler.compile:(Lorg/joni/ast/Node;)V
37: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.numRepeat:I
ifne 38
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemEnd:I
ifeq 40
38: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iconst_2
putfield org.joni.Regex.stackPopLevel:I
39: goto 44
40: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.btMemStart:I
ifeq 43
41: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iconst_1
putfield org.joni.Regex.stackPopLevel:I
42: goto 44
43: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iconst_0
putfield org.joni.Regex.stackPopLevel:I
44: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
dup
getfield org.joni.Regex.options:I
aload 0
getfield org.joni.Analyser.syntax:Lorg/joni/Syntax;
getfield org.joni.Syntax.options:I
iconst_m1
ixor
iand
putfield org.joni.Regex.options:I
45: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lorg/joni/Analyser;
8 46 1 root Lorg/joni/ast/Node;
23 46 2 top Lorg/joni/ast/Node$TopNode;
private java.lang.String encStringToString(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
ldc "\nPATTERN: /"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 4
start local 4 1: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.minLength:()I
iconst_1
if_icmple 17
2: iload 2
istore 5
start local 5 3: goto 13
4: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 1
iload 5
iload 3
invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
istore 6
start local 6 5: iload 6
sipush 128
if_icmplt 11
6: aload 4
ldc " 0x%04x "
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: goto 12
StackMap locals: org.joni.Analyser byte[] int int java.lang.StringBuilder int int
StackMap stack: java.util.IllegalFormatConversionException
8: pop
9: aload 4
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
10: goto 12
11: StackMap locals:
StackMap stack:
aload 4
iload 6
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
12: StackMap locals:
StackMap stack:
iload 5
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 1
iload 5
iload 3
invokevirtual org.jcodings.Encoding.length:([BII)I
iadd
istore 5
end local 6 13: StackMap locals:
StackMap stack:
iload 5
iload 3
if_icmplt 4
end local 5 14: goto 18
15: StackMap locals:
StackMap stack:
aload 4
new java.lang.String
dup
aload 1
iload 2
iconst_1
invokespecial java.lang.String.<init>:([BII)V
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: iinc 2 1
17: StackMap locals:
StackMap stack:
iload 2
iload 3
if_icmplt 15
18: StackMap locals:
StackMap stack:
aload 4
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/joni/Analyser;
0 19 1 bytes [B
0 19 2 p I
0 19 3 end I
1 19 4 sb Ljava/lang/StringBuilder;
3 14 5 p_ I
5 13 6 code I
Exception table:
from to target type
6 7 8 Class java.util.IllegalFormatConversionException
MethodParameters:
Name Flags
bytes
p
end
private void noNameDisableMapFor_listAlt(org.joni.ast.Node, int[], org.jcodings.Ptr);
descriptor: (Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)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 1
checkcast org.joni.ast.ListNode
astore 4
start local 4 1: StackMap locals: org.joni.ast.ListNode
StackMap stack:
aload 4
aload 0
aload 4
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMap:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
invokevirtual org.joni.ast.ListNode.setValue:(Lorg/joni/ast/Node;)V
2: aload 4
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 4
ifnonnull 1
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/joni/Analyser;
0 4 1 node Lorg/joni/ast/Node;
0 4 2 map [I
0 4 3 counter Lorg/jcodings/Ptr;
1 4 4 can Lorg/joni/ast/ListNode;
MethodParameters:
Name Flags
node
map
counter
private void noNameDisableMapFor_quantifier(org.joni.ast.Node, int[], org.jcodings.Ptr);
descriptor: (Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast org.joni.ast.QuantifierNode
astore 4
start local 4 1: aload 4
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
astore 5
start local 5 2: aload 5
astore 6
start local 6 3: aload 0
aload 5
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMap:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
astore 5
4: aload 5
aload 6
if_acmpeq 7
5: aload 4
aload 5
invokevirtual org.joni.ast.QuantifierNode.setTarget:(Lorg/joni/ast/Node;)V
6: aload 5
invokevirtual org.joni.ast.Node.getType:()I
iconst_5
if_icmpne 7
aload 4
aload 5
checkcast org.joni.ast.QuantifierNode
invokevirtual org.joni.ast.QuantifierNode.reduceNestedQuantifier:(Lorg/joni/ast/QuantifierNode;)V
7: StackMap locals: org.joni.ast.QuantifierNode org.joni.ast.Node org.joni.ast.Node
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 8 0 this Lorg/joni/Analyser;
0 8 1 node Lorg/joni/ast/Node;
0 8 2 map [I
0 8 3 counter Lorg/jcodings/Ptr;
1 8 4 qn Lorg/joni/ast/QuantifierNode;
2 8 5 target Lorg/joni/ast/Node;
3 8 6 old Lorg/joni/ast/Node;
MethodParameters:
Name Flags
node
map
counter
private org.joni.ast.Node noNameDisableMapFor_enclose(org.joni.ast.Node, int[], org.jcodings.Ptr);
descriptor: (Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
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 1
checkcast org.joni.ast.EncloseNode
astore 4
start local 4 1: aload 4
getfield org.joni.ast.EncloseNode.type:I
iconst_1
if_icmpne 12
2: aload 4
invokevirtual org.joni.ast.EncloseNode.isNamedGroup:()Z
ifeq 8
3: aload 3
dup
getfield org.jcodings.Ptr.p:I
iconst_1
iadd
putfield org.jcodings.Ptr.p:I
4: aload 2
aload 4
getfield org.joni.ast.EncloseNode.regNum:I
aload 3
getfield org.jcodings.Ptr.p:I
iastore
5: aload 4
aload 3
getfield org.jcodings.Ptr.p:I
putfield org.joni.ast.EncloseNode.regNum:I
6: aload 4
aload 0
aload 4
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMap:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
invokevirtual org.joni.ast.EncloseNode.setTarget:(Lorg/joni/ast/Node;)V
7: goto 13
8: StackMap locals: org.joni.ast.EncloseNode
StackMap stack:
aload 4
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
astore 1
9: aload 4
aconst_null
putfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
10: aload 0
aload 1
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMap:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
astore 1
11: goto 13
12: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 4
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMap:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
invokevirtual org.joni.ast.EncloseNode.setTarget:(Lorg/joni/ast/Node;)V
13: StackMap locals:
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/joni/Analyser;
0 14 1 node Lorg/joni/ast/Node;
0 14 2 map [I
0 14 3 counter Lorg/jcodings/Ptr;
1 14 4 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
map
counter
private void noNameDisableMapFor_anchor(org.joni.ast.Node, int[], org.jcodings.Ptr);
descriptor: (Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)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 1
checkcast org.joni.ast.AnchorNode
astore 4
start local 4 1: aload 4
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
ifnull 2
aload 4
aload 0
aload 4
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMap:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
invokevirtual org.joni.ast.AnchorNode.setTarget:(Lorg/joni/ast/Node;)V
2: StackMap locals: org.joni.ast.AnchorNode
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/joni/Analyser;
0 3 1 node Lorg/joni/ast/Node;
0 3 2 map [I
0 3 3 counter Lorg/jcodings/Ptr;
1 3 4 an Lorg/joni/ast/AnchorNode;
MethodParameters:
Name Flags
node
map
counter
private org.joni.ast.Node noNameDisableMap(org.joni.ast.Node, int[], org.jcodings.Ptr);
descriptor: (Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 5 - 9
5: 3
6: 5
7: 7
8: 1
9: 1
default: 8
}
1: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMapFor_listAlt:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)V
2: goto 8
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMapFor_quantifier:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)V
4: goto 8
5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMapFor_enclose:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
astore 1
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual org.joni.Analyser.noNameDisableMapFor_anchor:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)V
8: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/joni/Analyser;
0 9 1 node Lorg/joni/ast/Node;
0 9 2 map [I
0 9 3 counter Lorg/jcodings/Ptr;
MethodParameters:
Name Flags
node
map
counter
private void renumberByMap(org.joni.ast.Node, int[]);
descriptor: (Lorg/joni/ast/Node;[I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 4 - 9
4: 12
5: 5
6: 7
7: 14
8: 1
9: 1
default: 16
}
1: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 3
start local 3 2: StackMap locals: org.joni.ast.ListNode
StackMap stack:
aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
aload 2
invokevirtual org.joni.Analyser.renumberByMap:(Lorg/joni/ast/Node;[I)V
3: aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 3
ifnonnull 2
4: goto 16
end local 3 5: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.QuantifierNode
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
aload 2
invokevirtual org.joni.Analyser.renumberByMap:(Lorg/joni/ast/Node;[I)V
6: goto 16
7: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 4
start local 4 8: aload 4
getfield org.joni.ast.EncloseNode.type:I
bipush 8
if_icmpne 10
9: aload 4
aload 2
aload 4
getfield org.joni.ast.EncloseNode.regNum:I
iaload
putfield org.joni.ast.EncloseNode.regNum:I
10: StackMap locals: org.joni.Analyser org.joni.ast.Node int[] top org.joni.ast.EncloseNode
StackMap stack:
aload 0
aload 4
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
aload 2
invokevirtual org.joni.Analyser.renumberByMap:(Lorg/joni/ast/Node;[I)V
11: goto 16
end local 4 12: StackMap locals: org.joni.Analyser org.joni.ast.Node int[]
StackMap stack:
aload 1
checkcast org.joni.ast.BackRefNode
aload 2
invokevirtual org.joni.ast.BackRefNode.renumber:([I)V
13: goto 16
14: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 5
start local 5 15: aload 5
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
ifnull 16
aload 0
aload 5
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
aload 2
invokevirtual org.joni.Analyser.renumberByMap:(Lorg/joni/ast/Node;[I)V
end local 5 16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/joni/Analyser;
0 17 1 node Lorg/joni/ast/Node;
0 17 2 map [I
2 5 3 can Lorg/joni/ast/ListNode;
8 12 4 en Lorg/joni/ast/EncloseNode;
15 16 5 an Lorg/joni/ast/AnchorNode;
MethodParameters:
Name Flags
node
map
protected final void numberedRefCheck(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 4 - 9
4: 9
5: 5
6: 7
7: 12
8: 1
9: 1
default: 14
}
1: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 2
start local 2 2: StackMap locals: org.joni.ast.ListNode
StackMap stack:
aload 0
aload 2
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.numberedRefCheck:(Lorg/joni/ast/Node;)V
3: aload 2
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 2
ifnonnull 2
4: goto 14
end local 2 5: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.QuantifierNode
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.numberedRefCheck:(Lorg/joni/ast/Node;)V
6: goto 14
7: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.EncloseNode
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.numberedRefCheck:(Lorg/joni/ast/Node;)V
8: goto 14
9: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.BackRefNode
astore 3
start local 3 10: aload 3
invokevirtual org.joni.ast.BackRefNode.isNameRef:()Z
ifne 14
aload 0
ldc "numbered backref/call is not allowed. (use name)"
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;)V
11: goto 14
end local 3 12: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 4
start local 4 13: aload 4
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
ifnull 14
aload 0
aload 4
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.numberedRefCheck:(Lorg/joni/ast/Node;)V
end local 4 14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/joni/Analyser;
0 15 1 node Lorg/joni/ast/Node;
2 5 2 can Lorg/joni/ast/ListNode;
10 12 3 br Lorg/joni/ast/BackRefNode;
13 14 4 an Lorg/joni/ast/AnchorNode;
MethodParameters:
Name Flags
node
protected final org.joni.ast.Node disableNoNameGroupCapture(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)Lorg/joni/ast/Node;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
iconst_1
iadd
newarray 10
astore 2
start local 2 1: aload 0
aload 1
aload 2
new org.jcodings.Ptr
dup
iconst_0
invokespecial org.jcodings.Ptr.<init>:(I)V
invokevirtual org.joni.Analyser.noNameDisableMap:(Lorg/joni/ast/Node;[ILorg/jcodings/Ptr;)Lorg/joni/ast/Node;
astore 1
2: aload 0
aload 1
aload 2
invokevirtual org.joni.Analyser.renumberByMap:(Lorg/joni/ast/Node;[I)V
3: iconst_1
istore 3
start local 3 4: iconst_1
istore 4
start local 4 5: goto 10
6: StackMap locals: int[] int int
StackMap stack:
aload 2
iload 3
iaload
ifle 9
7: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.memNodes:[Lorg/joni/ast/EncloseNode;
iload 4
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.memNodes:[Lorg/joni/ast/EncloseNode;
iload 3
aaload
aastore
8: iinc 4 1
9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
if_icmple 6
end local 4 end local 3 11: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.captureHistory:I
istore 3
start local 3 12: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
invokestatic org.joni.BitStatus.bsClear:()I
putfield org.joni.ScanEnvironment.captureHistory:I
13: iconst_1
istore 4
start local 4 14: goto 18
15: StackMap locals:
StackMap stack:
iload 3
iload 4
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 17
16: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.captureHistory:I
aload 2
iload 4
iaload
invokestatic org.joni.BitStatus.bsOnAtSimple:(II)I
putfield org.joni.ScanEnvironment.captureHistory:I
17: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
bipush 31
if_icmple 15
end local 4 19: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numNamed:I
putfield org.joni.ScanEnvironment.numMem:I
20: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numNamed:I
putfield org.joni.Regex.numMem:I
21: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
invokevirtual org.joni.Regex.renumberNameTable:([I)V
22: aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/joni/Analyser;
0 23 1 root Lorg/joni/ast/Node;
1 23 2 map [I
4 11 3 i I
5 11 4 pos I
12 23 3 loc I
14 19 4 i I
MethodParameters:
Name Flags
root
private int quantifiersMemoryInfo(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, 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: 22
1: 22
2: 22
3: 22
4: 22
5: 12
6: 16
7: 22
8: 2
9: 2
10: 7
default: 22
}
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:
aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.quantifiersMemoryInfo:(Lorg/joni/ast/Node;)I
istore 4
start local 4 4: iload 4
iload 2
if_icmple 5
iload 4
istore 2
end local 4 5: StackMap locals:
StackMap stack:
aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 3
ifnonnull 3
6: goto 22
end local 3 7: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.CallNode
astore 4
start local 4 8: aload 4
invokevirtual org.joni.ast.CallNode.isRecursion:()Z
ifeq 10
9: iconst_3
ireturn
10: StackMap locals: org.joni.Analyser org.joni.ast.Node int top org.joni.ast.CallNode
StackMap stack:
aload 0
aload 4
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
invokevirtual org.joni.Analyser.quantifiersMemoryInfo:(Lorg/joni/ast/Node;)I
istore 2
end local 4 11: goto 22
12: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.QuantifierNode
astore 4
start local 4 13: aload 4
getfield org.joni.ast.QuantifierNode.upper:I
ifeq 22
14: aload 0
aload 4
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.quantifiersMemoryInfo:(Lorg/joni/ast/Node;)I
istore 2
15: goto 22
end local 4 16: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 5
start local 5 17: aload 5
getfield org.joni.ast.EncloseNode.type:I
lookupswitch { // 5
1: 18
2: 19
4: 19
8: 19
16: 19
default: 21
}
18: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top org.joni.ast.EncloseNode
StackMap stack:
iconst_2
ireturn
19: StackMap locals:
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.quantifiersMemoryInfo:(Lorg/joni/ast/Node;)I
istore 2
20: goto 22
21: StackMap locals:
StackMap stack:
goto 22
end local 5 22: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/joni/Analyser;
0 23 1 node Lorg/joni/ast/Node;
1 23 2 info I
3 7 3 can Lorg/joni/ast/ListNode;
4 5 4 v I
8 11 4 cn Lorg/joni/ast/CallNode;
13 16 4 qn Lorg/joni/ast/QuantifierNode;
17 22 5 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
private int getMinMatchLength(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: 39
1: 43
2: 41
3: 43
4: 2
5: 45
6: 50
7: 67
8: 25
9: 29
10: 18
default: 67
}
2: StackMap locals: int
StackMap stack:
aload 1
checkcast org.joni.ast.BackRefNode
astore 3
start local 3 3: aload 3
invokevirtual org.joni.ast.BackRefNode.isRecursion:()Z
ifeq 4
goto 67
4: StackMap locals: org.joni.ast.BackRefNode
StackMap stack:
aload 3
getfield org.joni.ast.BackRefNode.back:[I
iconst_0
iaload
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
if_icmple 7
5: aload 0
getfield org.joni.Analyser.syntax:Lorg/joni/Syntax;
invokevirtual org.joni.Syntax.op3OptionECMAScript:()Z
ifne 8
aload 0
ldc "invalid backref number/name"
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;)V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.memNodes:[Lorg/joni/ast/EncloseNode;
aload 3
getfield org.joni.ast.BackRefNode.back:[I
iconst_0
iaload
aaload
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 2
8: StackMap locals:
StackMap stack:
iconst_1
istore 4
start local 4 9: goto 16
10: StackMap locals: int
StackMap stack:
aload 3
getfield org.joni.ast.BackRefNode.back:[I
iload 4
iaload
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
if_icmple 13
11: aload 0
getfield org.joni.Analyser.syntax:Lorg/joni/Syntax;
invokevirtual org.joni.Syntax.op3OptionECMAScript:()Z
ifne 15
aload 0
ldc "invalid backref number/name"
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;)V
12: goto 15
13: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.memNodes:[Lorg/joni/ast/EncloseNode;
aload 3
getfield org.joni.ast.BackRefNode.back:[I
iload 4
iaload
aaload
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 5
start local 5 14: iload 2
iload 5
if_icmple 15
iload 5
istore 2
end local 5 15: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
16: iload 4
aload 3
getfield org.joni.ast.BackRefNode.backNum:I
if_icmplt 10
end local 4 17: goto 67
end local 3 18: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.CallNode
astore 4
start local 4 19: aload 4
invokevirtual org.joni.ast.CallNode.isRecursion:()Z
ifeq 23
20: aload 4
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
astore 5
start local 5 21: aload 5
invokevirtual org.joni.ast.EncloseNode.isMinFixed:()Z
ifeq 67
aload 5
getfield org.joni.ast.EncloseNode.minLength:I
istore 2
end local 5 22: goto 67
23: StackMap locals: org.joni.Analyser org.joni.ast.Node int top org.joni.ast.CallNode
StackMap stack:
aload 0
aload 4
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 2
end local 4 24: goto 67
25: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 4
start local 4 26: StackMap locals: org.joni.Analyser org.joni.ast.Node int top org.joni.ast.ListNode
StackMap stack:
iload 2
aload 0
aload 4
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
iadd
istore 2
27: aload 4
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 4
ifnonnull 26
28: goto 67
end local 4 29: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 5
start local 5 30: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top org.joni.ast.ListNode
StackMap stack:
aload 5
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
astore 6
start local 6 31: aload 0
aload 6
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 7
start local 7 32: aload 5
aload 1
if_acmpne 35
33: iload 7
istore 2
34: goto 37
StackMap locals: org.joni.ast.Node int
StackMap stack:
35: iload 2
iload 7
if_icmple 37
36: iload 7
istore 2
end local 7 end local 6 37: StackMap locals:
StackMap stack:
aload 5
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 5
ifnonnull 30
38: goto 67
end local 5 39: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.StringNode
invokevirtual org.joni.ast.StringNode.length:()I
istore 2
40: goto 67
41: StackMap locals:
StackMap stack:
iconst_1
istore 2
42: goto 67
43: StackMap locals:
StackMap stack:
iconst_1
istore 2
44: goto 67
45: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.QuantifierNode
astore 6
start local 6 46: aload 6
getfield org.joni.ast.QuantifierNode.lower:I
ifle 67
47: aload 0
aload 6
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 2
48: iload 2
aload 6
getfield org.joni.ast.QuantifierNode.lower:I
invokestatic org.joni.MinMaxLen.distanceMultiply:(II)I
istore 2
49: goto 67
end local 6 50: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 7
start local 7 51: aload 7
getfield org.joni.ast.EncloseNode.type:I
lookupswitch { // 5
1: 52
2: 64
4: 64
8: 64
16: 66
default: 66
}
52: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top top org.joni.ast.EncloseNode
StackMap stack:
aload 7
invokevirtual org.joni.ast.EncloseNode.isMinFixed:()Z
ifeq 55
53: aload 7
getfield org.joni.ast.EncloseNode.minLength:I
istore 2
54: goto 67
55: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.joni.ast.EncloseNode.isMark1:()Z
ifeq 58
56: iconst_0
istore 2
57: goto 67
58: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.joni.ast.EncloseNode.setMark1:()V
59: aload 0
aload 7
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 2
60: aload 7
invokevirtual org.joni.ast.EncloseNode.clearMark1:()V
61: aload 7
iload 2
putfield org.joni.ast.EncloseNode.minLength:I
62: aload 7
invokevirtual org.joni.ast.EncloseNode.setMinFixed:()V
63: goto 67
64: StackMap locals:
StackMap stack:
aload 0
aload 7
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 2
65: goto 67
66: StackMap locals:
StackMap stack:
goto 67
end local 7 67: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Lorg/joni/Analyser;
0 68 1 node Lorg/joni/ast/Node;
1 68 2 min I
3 18 3 br Lorg/joni/ast/BackRefNode;
9 17 4 i I
14 15 5 tmin I
19 24 4 cn Lorg/joni/ast/CallNode;
21 22 5 en Lorg/joni/ast/EncloseNode;
26 29 4 can Lorg/joni/ast/ListNode;
30 39 5 y Lorg/joni/ast/ListNode;
31 37 6 x Lorg/joni/ast/Node;
32 37 7 tmin I
46 50 6 qn Lorg/joni/ast/QuantifierNode;
51 67 7 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
private int getMaxMatchLength(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: 12
1: 16
2: 14
3: 16
4: 18
5: 38
6: 47
7: 64
8: 2
9: 7
10: 32
default: 64
}
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:
aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMaxMatchLength:(Lorg/joni/ast/Node;)I
istore 4
start local 4 4: iload 2
iload 4
invokestatic org.joni.MinMaxLen.distanceAdd:(II)I
istore 2
end local 4 5: aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 3
ifnonnull 3
6: goto 64
end local 3 7: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 4
start local 4 8: StackMap locals: org.joni.Analyser org.joni.ast.Node int top org.joni.ast.ListNode
StackMap stack:
aload 0
aload 4
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMaxMatchLength:(Lorg/joni/ast/Node;)I
istore 5
start local 5 9: iload 2
iload 5
if_icmpge 10
iload 5
istore 2
end local 5 10: StackMap locals:
StackMap stack:
aload 4
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 4
ifnonnull 8
11: goto 64
end local 4 12: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.StringNode
invokevirtual org.joni.ast.StringNode.length:()I
istore 2
13: goto 64
14: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.maxLength:()I
istore 2
15: goto 64
16: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.maxLength:()I
istore 2
17: goto 64
18: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.BackRefNode
astore 5
start local 5 19: aload 5
invokevirtual org.joni.ast.BackRefNode.isRecursion:()Z
ifeq 22
20: ldc 2147483647
istore 2
21: goto 64
22: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top org.joni.ast.BackRefNode
StackMap stack:
iconst_0
istore 6
start local 6 23: goto 30
24: StackMap locals: int
StackMap stack:
aload 5
getfield org.joni.ast.BackRefNode.back:[I
iload 6
iaload
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
if_icmple 27
25: aload 0
getfield org.joni.Analyser.syntax:Lorg/joni/Syntax;
invokevirtual org.joni.Syntax.op3OptionECMAScript:()Z
ifne 29
aload 0
ldc "invalid backref number/name"
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;)V
26: goto 29
27: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.memNodes:[Lorg/joni/ast/EncloseNode;
aload 5
getfield org.joni.ast.BackRefNode.back:[I
iload 6
iaload
aaload
invokevirtual org.joni.Analyser.getMaxMatchLength:(Lorg/joni/ast/Node;)I
istore 7
start local 7 28: iload 2
iload 7
if_icmpge 29
iload 7
istore 2
end local 7 29: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
30: iload 6
aload 5
getfield org.joni.ast.BackRefNode.backNum:I
if_icmplt 24
end local 6 31: goto 64
end local 5 32: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.CallNode
astore 6
start local 6 33: aload 6
invokevirtual org.joni.ast.CallNode.isRecursion:()Z
ifne 36
34: aload 0
aload 6
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
invokevirtual org.joni.Analyser.getMaxMatchLength:(Lorg/joni/ast/Node;)I
istore 2
35: goto 64
36: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top org.joni.ast.CallNode
StackMap stack:
ldc 2147483647
istore 2
end local 6 37: goto 64
38: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.QuantifierNode
astore 6
start local 6 39: aload 6
getfield org.joni.ast.QuantifierNode.upper:I
ifeq 64
40: aload 0
aload 6
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMaxMatchLength:(Lorg/joni/ast/Node;)I
istore 2
41: iload 2
ifeq 64
42: aload 6
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifne 45
43: iload 2
aload 6
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.MinMaxLen.distanceMultiply:(II)I
istore 2
44: goto 64
45: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top org.joni.ast.QuantifierNode
StackMap stack:
ldc 2147483647
istore 2
46: goto 64
end local 6 47: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 7
start local 7 48: aload 7
getfield org.joni.ast.EncloseNode.type:I
lookupswitch { // 5
1: 49
2: 61
4: 61
8: 61
16: 63
default: 63
}
49: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top top org.joni.ast.EncloseNode
StackMap stack:
aload 7
invokevirtual org.joni.ast.EncloseNode.isMaxFixed:()Z
ifeq 52
50: aload 7
getfield org.joni.ast.EncloseNode.maxLength:I
istore 2
51: goto 64
52: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.joni.ast.EncloseNode.isMark1:()Z
ifeq 55
53: ldc 2147483647
istore 2
54: goto 64
55: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.joni.ast.EncloseNode.setMark1:()V
56: aload 0
aload 7
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMaxMatchLength:(Lorg/joni/ast/Node;)I
istore 2
57: aload 7
invokevirtual org.joni.ast.EncloseNode.clearMark1:()V
58: aload 7
iload 2
putfield org.joni.ast.EncloseNode.maxLength:I
59: aload 7
invokevirtual org.joni.ast.EncloseNode.setMaxFixed:()V
60: goto 64
61: StackMap locals:
StackMap stack:
aload 0
aload 7
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMaxMatchLength:(Lorg/joni/ast/Node;)I
istore 2
62: goto 64
63: StackMap locals:
StackMap stack:
goto 64
end local 7 64: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 65 0 this Lorg/joni/Analyser;
0 65 1 node Lorg/joni/ast/Node;
1 65 2 max I
3 7 3 ln Lorg/joni/ast/ListNode;
4 5 4 tmax I
8 12 4 an Lorg/joni/ast/ListNode;
9 10 5 tmax I
19 32 5 br Lorg/joni/ast/BackRefNode;
23 31 6 i I
28 29 7 tmax I
33 37 6 cn Lorg/joni/ast/CallNode;
39 47 6 qn Lorg/joni/ast/QuantifierNode;
48 64 7 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
protected final int getCharLengthTree(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/joni/Analyser;
0 1 1 node Lorg/joni/ast/Node;
MethodParameters:
Name Flags
node
private int getCharLengthTree(org.joni.ast.Node, int);
descriptor: (Lorg/joni/ast/Node;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=11, args_size=3
start local 0 start local 1 start local 2 0: iinc 2 1
1: iconst_0
istore 3
start local 3 2: aload 0
iconst_0
putfield org.joni.Analyser.returnCode:I
3: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 0 - 10
0: 26
1: 43
2: 42
3: 43
4: 59
5: 29
6: 45
7: 58
8: 4
9: 9
10: 36
default: 59
}
4: StackMap locals: int
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 4
start local 4 5: StackMap locals: org.joni.ast.ListNode
StackMap stack:
aload 0
aload 4
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;I)I
istore 5
start local 5 6: aload 0
getfield org.joni.Analyser.returnCode:I
ifne 7
iload 3
iload 5
invokestatic org.joni.MinMaxLen.distanceAdd:(II)I
istore 3
end local 5 7: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.returnCode:I
ifne 60
aload 4
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 4
ifnonnull 5
8: goto 60
end local 4 9: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 5
start local 5 10: iconst_0
istore 6
start local 6 11: aload 0
aload 5
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;I)I
istore 7
start local 7 12: goto 16
13: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top org.joni.ast.ListNode int int
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;I)I
istore 8
start local 8 14: aload 0
getfield org.joni.Analyser.returnCode:I
ifne 16
15: iload 7
iload 8
if_icmpeq 16
iconst_1
istore 6
end local 8 16: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.returnCode:I
ifne 17
aload 5
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 5
ifnonnull 13
17: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.returnCode:I
ifne 60
18: iload 6
ifeq 24
19: iload 2
iconst_1
if_icmpne 22
20: aload 0
bipush -2
putfield org.joni.Analyser.returnCode:I
21: goto 60
22: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield org.joni.Analyser.returnCode:I
23: goto 60
24: StackMap locals:
StackMap stack:
iload 7
istore 3
25: goto 60
end local 7 end local 6 end local 5 26: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
aload 1
checkcast org.joni.ast.StringNode
astore 8
start local 8 27: aload 8
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.ast.StringNode.length:(Lorg/jcodings/Encoding;)I
istore 3
28: goto 60
end local 8 29: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.QuantifierNode
astore 9
start local 9 30: aload 9
getfield org.joni.ast.QuantifierNode.lower:I
aload 9
getfield org.joni.ast.QuantifierNode.upper:I
if_icmpne 34
31: aload 0
aload 9
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;I)I
istore 7
start local 7 32: aload 0
getfield org.joni.Analyser.returnCode:I
ifne 60
iload 7
aload 9
getfield org.joni.ast.QuantifierNode.lower:I
invokestatic org.joni.MinMaxLen.distanceMultiply:(II)I
istore 3
33: goto 60
end local 7 34: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top top top org.joni.ast.QuantifierNode
StackMap stack:
aload 0
iconst_m1
putfield org.joni.Analyser.returnCode:I
35: goto 60
end local 9 36: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
aload 1
checkcast org.joni.ast.CallNode
astore 10
start local 10 37: aload 10
invokevirtual org.joni.ast.CallNode.isRecursion:()Z
ifne 40
38: aload 0
aload 10
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
iload 2
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;I)I
istore 3
39: goto 60
40: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top top top top org.joni.ast.CallNode
StackMap stack:
aload 0
iconst_m1
putfield org.joni.Analyser.returnCode:I
end local 10 41: goto 60
42: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
iconst_1
istore 3
43: StackMap locals:
StackMap stack:
iconst_1
istore 3
44: goto 60
45: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 10
start local 10 46: aload 10
getfield org.joni.ast.EncloseNode.type:I
lookupswitch { // 5
1: 47
2: 55
4: 55
8: 55
16: 57
default: 57
}
47: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top top top top org.joni.ast.EncloseNode
StackMap stack:
aload 10
invokevirtual org.joni.ast.EncloseNode.isCLenFixed:()Z
ifeq 50
48: aload 10
getfield org.joni.ast.EncloseNode.charLength:I
istore 3
49: goto 60
50: StackMap locals:
StackMap stack:
aload 0
aload 10
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;I)I
istore 3
51: aload 0
getfield org.joni.Analyser.returnCode:I
ifne 60
52: aload 10
iload 3
putfield org.joni.ast.EncloseNode.charLength:I
53: aload 10
invokevirtual org.joni.ast.EncloseNode.setCLenFixed:()V
54: goto 60
55: StackMap locals:
StackMap stack:
aload 0
aload 10
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;I)I
istore 3
56: goto 60
57: StackMap locals:
StackMap stack:
goto 60
end local 10 58: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
goto 60
59: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield org.joni.Analyser.returnCode:I
60: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 61 0 this Lorg/joni/Analyser;
0 61 1 node Lorg/joni/ast/Node;
0 61 2 level I
2 61 3 len I
5 9 4 ln Lorg/joni/ast/ListNode;
6 7 5 tlen I
10 26 5 an Lorg/joni/ast/ListNode;
11 26 6 varLen Z
12 26 7 tlen I
32 34 7 tlen I
14 16 8 tlen2 I
27 29 8 sn Lorg/joni/ast/StringNode;
30 36 9 qn Lorg/joni/ast/QuantifierNode;
37 41 10 cn Lorg/joni/ast/CallNode;
46 58 10 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
level
private boolean isNotIncluded(org.joni.ast.Node, org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;Lorg/joni/ast/Node;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=15, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.joni.ast.Node.getType:()I
istore 4
start local 4 1: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 0 - 2
0: 68
1: 16
2: 2
default: 103
}
2: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.ast.Node top int
StackMap stack:
iload 4
tableswitch { // 0 - 2
0: 11
1: 7
2: 3
default: 15
}
3: StackMap locals:
StackMap stack:
aload 2
checkcast org.joni.ast.CTypeNode
astore 5
start local 5 4: aload 1
checkcast org.joni.ast.CTypeNode
astore 6
start local 6 5: aload 5
getfield org.joni.ast.CTypeNode.ctype:I
aload 6
getfield org.joni.ast.CTypeNode.ctype:I
if_icmpne 6
aload 5
getfield org.joni.ast.CTypeNode.not:Z
aload 6
getfield org.joni.ast.CTypeNode.not:Z
if_icmpeq 6
aload 5
getfield org.joni.ast.CTypeNode.asciiRange:Z
aload 6
getfield org.joni.ast.CTypeNode.asciiRange:Z
if_icmpne 6
iconst_1
ireturn
StackMap locals: org.joni.ast.CTypeNode org.joni.ast.CTypeNode
StackMap stack:
6: iconst_0
ireturn
end local 6 end local 5 7: StackMap locals:
StackMap stack:
aload 1
astore 3
start local 3 8: aload 2
astore 1
9: aload 3
astore 2
10: goto 0
end local 3 11: StackMap locals:
StackMap stack:
aload 1
astore 3
start local 3 12: aload 2
astore 1
13: aload 3
astore 2
14: goto 0
end local 3 15: StackMap locals:
StackMap stack:
goto 103
16: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.CClassNode
astore 5
start local 5 17: iload 4
tableswitch { // 0 - 2
0: 63
1: 47
2: 18
default: 67
}
18: StackMap locals: org.joni.ast.CClassNode
StackMap stack:
aload 2
checkcast org.joni.ast.CTypeNode
astore 6
start local 6 19: aload 6
getfield org.joni.ast.CTypeNode.ctype:I
tableswitch { // 12 - 12
12: 20
default: 46
}
20: StackMap locals: org.joni.ast.CTypeNode
StackMap stack:
aload 6
getfield org.joni.ast.CTypeNode.not:Z
ifne 32
21: aload 5
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
ifnonnull 31
aload 5
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifne 31
22: iconst_0
istore 7
start local 7 23: goto 29
24: StackMap locals: int
StackMap stack:
aload 5
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
iload 7
invokevirtual org.joni.BitSet.at:(I)Z
ifeq 28
25: aload 6
getfield org.joni.ast.CTypeNode.asciiRange:Z
ifeq 27
26: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
iload 7
invokevirtual org.jcodings.Encoding.isSbWord:(I)Z
ifeq 28
iconst_0
ireturn
27: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
iload 7
invokevirtual org.jcodings.Encoding.isWord:(I)Z
ifeq 28
iconst_0
ireturn
28: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
29: iload 7
sipush 256
if_icmplt 24
end local 7 30: iconst_1
ireturn
31: StackMap locals:
StackMap stack:
iconst_0
ireturn
32: StackMap locals:
StackMap stack:
aload 5
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
ifnull 33
iconst_0
ireturn
33: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 34: goto 44
35: StackMap locals: int
StackMap stack:
aload 6
getfield org.joni.ast.CTypeNode.asciiRange:Z
ifeq 38
36: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
iload 7
invokevirtual org.jcodings.Encoding.isSbWord:(I)Z
istore 8
start local 8 37: goto 39
end local 8 38: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
iload 7
invokevirtual org.jcodings.Encoding.isWord:(I)Z
istore 8
start local 8 39: StackMap locals: int
StackMap stack:
iload 8
ifne 43
40: aload 5
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifne 42
41: aload 5
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
iload 7
invokevirtual org.joni.BitSet.at:(I)Z
ifeq 43
iconst_0
ireturn
42: StackMap locals:
StackMap stack:
aload 5
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
iload 7
invokevirtual org.joni.BitSet.at:(I)Z
ifne 43
iconst_0
ireturn
end local 8 43: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
44: iload 7
sipush 256
if_icmplt 35
end local 7 45: iconst_1
ireturn
46: StackMap locals:
StackMap stack:
goto 103
end local 6 47: StackMap locals:
StackMap stack:
aload 2
checkcast org.joni.ast.CClassNode
astore 6
start local 6 48: iconst_0
istore 7
start local 7 49: goto 58
50: StackMap locals: org.joni.ast.CClassNode int
StackMap stack:
aload 5
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
iload 7
invokevirtual org.joni.BitSet.at:(I)Z
istore 8
start local 8 51: iload 8
ifeq 52
aload 5
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 53
StackMap locals: int
StackMap stack:
52: iload 8
ifne 57
aload 5
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 57
53: StackMap locals:
StackMap stack:
aload 6
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
iload 7
invokevirtual org.joni.BitSet.at:(I)Z
istore 8
54: iload 8
ifeq 55
aload 6
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 56
StackMap locals:
StackMap stack:
55: iload 8
ifne 57
aload 6
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 57
StackMap locals:
StackMap stack:
56: iconst_0
ireturn
end local 8 57: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
58: iload 7
sipush 256
if_icmplt 50
end local 7 59: aload 5
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
ifnonnull 60
aload 5
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 61
StackMap locals:
StackMap stack:
60: aload 6
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
ifnonnull 62
aload 6
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifne 62
StackMap locals:
StackMap stack:
61: iconst_1
ireturn
62: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 6 63: StackMap locals:
StackMap stack:
aload 1
astore 3
start local 3 64: aload 2
astore 1
65: aload 3
astore 2
66: goto 0
end local 3 67: StackMap locals:
StackMap stack:
goto 103
end local 5 68: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.StringNode
astore 6
start local 6 69: aload 6
invokevirtual org.joni.ast.StringNode.length:()I
ifne 70
goto 103
70: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.ast.Node top int top org.joni.ast.StringNode
StackMap stack:
iload 4
tableswitch { // 0 - 2
0: 90
1: 85
2: 71
default: 103
}
71: StackMap locals:
StackMap stack:
aload 2
checkcast org.joni.ast.CTypeNode
astore 7
start local 7 72: aload 7
getfield org.joni.ast.CTypeNode.ctype:I
tableswitch { // 12 - 12
12: 73
default: 84
}
73: StackMap locals: org.joni.ast.CTypeNode
StackMap stack:
aload 7
getfield org.joni.ast.CTypeNode.asciiRange:Z
ifeq 79
74: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 6
getfield org.joni.ast.StringNode.bytes:[B
aload 6
getfield org.joni.ast.StringNode.p:I
aload 6
getfield org.joni.ast.StringNode.end:I
invokestatic org.joni.Matcher.isMbcAsciiWord:(Lorg/jcodings/Encoding;[BII)Z
ifeq 76
75: aload 7
getfield org.joni.ast.CTypeNode.not:Z
ireturn
76: StackMap locals:
StackMap stack:
aload 7
getfield org.joni.ast.CTypeNode.not:Z
ifeq 77
iconst_0
goto 78
StackMap locals:
StackMap stack:
77: iconst_1
StackMap locals:
StackMap stack: int
78: ireturn
79: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 6
getfield org.joni.ast.StringNode.bytes:[B
aload 6
getfield org.joni.ast.StringNode.p:I
aload 6
getfield org.joni.ast.StringNode.end:I
invokevirtual org.jcodings.Encoding.isMbcWord:([BII)Z
ifeq 81
80: aload 7
getfield org.joni.ast.CTypeNode.not:Z
ireturn
81: StackMap locals:
StackMap stack:
aload 7
getfield org.joni.ast.CTypeNode.not:Z
ifeq 82
iconst_0
goto 83
StackMap locals:
StackMap stack:
82: iconst_1
StackMap locals:
StackMap stack: int
83: ireturn
84: StackMap locals:
StackMap stack:
goto 103
end local 7 85: StackMap locals:
StackMap stack:
aload 2
checkcast org.joni.ast.CClassNode
astore 8
start local 8 86: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 6
getfield org.joni.ast.StringNode.bytes:[B
aload 6
getfield org.joni.ast.StringNode.p:I
aload 6
getfield org.joni.ast.StringNode.p:I
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.maxLength:()I
iadd
invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
istore 9
start local 9 87: aload 8
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
iload 9
invokevirtual org.joni.ast.CClassNode.isCodeInCC:(Lorg/jcodings/Encoding;I)Z
ifeq 88
iconst_0
goto 89
StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.ast.Node top int top org.joni.ast.StringNode top org.joni.ast.CClassNode int
StackMap stack:
88: iconst_1
StackMap locals:
StackMap stack: int
89: ireturn
end local 9 end local 8 90: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.ast.Node top int top org.joni.ast.StringNode
StackMap stack:
aload 2
checkcast org.joni.ast.StringNode
astore 10
start local 10 91: aload 6
invokevirtual org.joni.ast.StringNode.length:()I
istore 11
start local 11 92: iload 11
aload 10
invokevirtual org.joni.ast.StringNode.length:()I
if_icmple 93
aload 10
invokevirtual org.joni.ast.StringNode.length:()I
istore 11
93: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.ast.Node top int top org.joni.ast.StringNode top top top org.joni.ast.StringNode int
StackMap stack:
aload 6
invokevirtual org.joni.ast.StringNode.isAmbig:()Z
ifne 94
aload 10
invokevirtual org.joni.ast.StringNode.isAmbig:()Z
ifeq 95
94: StackMap locals:
StackMap stack:
iconst_0
ireturn
95: StackMap locals:
StackMap stack:
iconst_0
istore 12
start local 12 96: aload 10
getfield org.joni.ast.StringNode.p:I
istore 13
start local 13 97: aload 6
getfield org.joni.ast.StringNode.p:I
istore 14
start local 14 98: goto 101
99: StackMap locals: int int int
StackMap stack:
aload 10
getfield org.joni.ast.StringNode.bytes:[B
iload 13
baload
aload 6
getfield org.joni.ast.StringNode.bytes:[B
iload 14
baload
if_icmpeq 100
iconst_1
ireturn
100: StackMap locals:
StackMap stack:
iinc 12 1
iinc 13 1
iinc 14 1
StackMap locals:
StackMap stack:
101: iload 12
iload 11
if_icmplt 99
end local 14 end local 13 end local 12 102: goto 103
end local 11 end local 10 end local 6 end local 4 103: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.ast.Node
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 104 0 this Lorg/joni/Analyser;
0 104 1 x Lorg/joni/ast/Node;
0 104 2 y Lorg/joni/ast/Node;
8 11 3 tmp Lorg/joni/ast/Node;
12 15 3 tmp Lorg/joni/ast/Node;
64 67 3 tmp Lorg/joni/ast/Node;
1 103 4 yType I
4 7 5 cny Lorg/joni/ast/CTypeNode;
5 7 6 cnx Lorg/joni/ast/CTypeNode;
17 68 5 xc Lorg/joni/ast/CClassNode;
19 47 6 yc Lorg/joni/ast/CTypeNode;
23 30 7 i I
34 45 7 i I
37 38 8 isWord Z
39 43 8 isWord Z
48 63 6 yc Lorg/joni/ast/CClassNode;
49 59 7 i I
51 57 8 v Z
69 103 6 xs Lorg/joni/ast/StringNode;
72 85 7 cy Lorg/joni/ast/CTypeNode;
86 90 8 cc Lorg/joni/ast/CClassNode;
87 90 9 code I
91 103 10 ys Lorg/joni/ast/StringNode;
92 103 11 len I
96 102 12 i I
97 102 13 p I
98 102 14 q I
MethodParameters:
Name Flags
x
y
private org.joni.ast.Node getHeadValueNode(org.joni.ast.Node, boolean);
descriptor: (Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 0 - 10
0: 8
1: 4
2: 4
3: 2
4: 2
5: 13
6: 20
7: 30
8: 6
9: 2
10: 3
default: 33
}
2: StackMap locals: org.joni.ast.Node
StackMap stack:
goto 33
3: StackMap locals:
StackMap stack:
goto 33
4: StackMap locals:
StackMap stack:
iload 2
ifne 33
aload 1
astore 3
5: goto 33
6: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.ListNode
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getHeadValueNode:(Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
astore 3
7: goto 33
8: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.StringNode
astore 4
start local 4 9: aload 4
getfield org.joni.ast.StringNode.end:I
aload 4
getfield org.joni.ast.StringNode.p:I
if_icmpgt 10
goto 33
10: StackMap locals: org.joni.ast.StringNode
StackMap stack:
iload 2
ifeq 11
aload 4
invokevirtual org.joni.ast.StringNode.isRaw:()Z
ifne 11
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isIgnoreCase:(I)Z
ifne 33
11: StackMap locals:
StackMap stack:
aload 1
astore 3
12: goto 33
end local 4 13: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.QuantifierNode
astore 5
start local 5 14: aload 5
getfield org.joni.ast.QuantifierNode.lower:I
ifle 33
15: aload 5
getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
ifnull 18
16: aload 5
getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
astore 3
17: goto 33
18: StackMap locals: org.joni.Analyser org.joni.ast.Node int org.joni.ast.Node top org.joni.ast.QuantifierNode
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getHeadValueNode:(Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
astore 3
19: goto 33
end local 5 20: StackMap locals: org.joni.Analyser org.joni.ast.Node int org.joni.ast.Node
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 6
start local 6 21: aload 6
getfield org.joni.ast.EncloseNode.type:I
lookupswitch { // 5
1: 27
2: 22
4: 27
8: 27
16: 29
default: 29
}
22: StackMap locals: org.joni.Analyser org.joni.ast.Node int org.joni.ast.Node top top org.joni.ast.EncloseNode
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
istore 7
start local 7 23: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 6
getfield org.joni.ast.EncloseNode.option:I
putfield org.joni.Regex.options:I
24: aload 0
aload 6
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getHeadValueNode:(Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
astore 3
25: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iload 7
putfield org.joni.Regex.options:I
26: goto 33
end local 7 27: StackMap locals:
StackMap stack:
aload 0
aload 6
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getHeadValueNode:(Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
astore 3
28: goto 33
29: StackMap locals:
StackMap stack:
goto 33
end local 6 30: StackMap locals: org.joni.Analyser org.joni.ast.Node int org.joni.ast.Node
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 7
start local 7 31: aload 7
getfield org.joni.ast.AnchorNode.type:I
sipush 1024
if_icmpne 33
aload 0
aload 7
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.getHeadValueNode:(Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
astore 3
32: goto 33
end local 7 33: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/joni/Analyser;
0 34 1 node Lorg/joni/ast/Node;
0 34 2 exact Z
1 34 3 n Lorg/joni/ast/Node;
9 13 4 sn Lorg/joni/ast/StringNode;
14 20 5 qn Lorg/joni/ast/QuantifierNode;
21 30 6 en Lorg/joni/ast/EncloseNode;
23 27 7 options I
31 33 7 an Lorg/joni/ast/AnchorNode;
MethodParameters:
Name Flags
node
exact
private boolean checkTypeTree(org.joni.ast.Node, int, int, int);
descriptor: (Lorg/joni/ast/Node;III)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokevirtual org.joni.ast.Node.getType2Bit:()I
iload 2
iand
ifne 1
iconst_1
ireturn
1: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 2: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 5 - 9
5: 7
6: 9
7: 13
8: 3
9: 3
default: 17
}
3: StackMap locals: int
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 6
start local 6 4: StackMap locals: org.joni.ast.ListNode
StackMap stack:
aload 0
aload 6
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
iload 3
iload 4
invokevirtual org.joni.Analyser.checkTypeTree:(Lorg/joni/ast/Node;III)Z
istore 5
5: iload 5
ifne 17
aload 6
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 6
ifnonnull 4
6: goto 17
end local 6 7: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.QuantifierNode
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 2
iload 3
iload 4
invokevirtual org.joni.Analyser.checkTypeTree:(Lorg/joni/ast/Node;III)Z
istore 5
8: goto 17
9: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 7
start local 7 10: aload 7
getfield org.joni.ast.EncloseNode.type:I
iload 3
iand
ifne 11
iconst_1
ireturn
11: StackMap locals: org.joni.Analyser org.joni.ast.Node int int int int top org.joni.ast.EncloseNode
StackMap stack:
aload 0
aload 7
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
iload 3
iload 4
invokevirtual org.joni.Analyser.checkTypeTree:(Lorg/joni/ast/Node;III)Z
istore 5
12: goto 17
end local 7 13: StackMap locals: org.joni.Analyser org.joni.ast.Node int int int int
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 8
start local 8 14: aload 8
getfield org.joni.ast.AnchorNode.type:I
iload 4
iand
ifne 15
iconst_1
ireturn
15: StackMap locals: org.joni.Analyser org.joni.ast.Node int int int int top top org.joni.ast.AnchorNode
StackMap stack:
aload 8
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
ifnull 17
aload 0
aload 8
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
iload 2
iload 3
iload 4
invokevirtual org.joni.Analyser.checkTypeTree:(Lorg/joni/ast/Node;III)Z
istore 5
16: goto 17
end local 8 17: StackMap locals: org.joni.Analyser org.joni.ast.Node int int int int
StackMap stack:
iload 5
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 18 0 this Lorg/joni/Analyser;
0 18 1 node Lorg/joni/ast/Node;
0 18 2 typeMask I
0 18 3 encloseMask I
0 18 4 anchorMask I
2 18 5 invalid Z
4 7 6 can Lorg/joni/ast/ListNode;
10 13 7 en Lorg/joni/ast/EncloseNode;
14 17 8 an Lorg/joni/ast/AnchorNode;
MethodParameters:
Name Flags
node
typeMask
encloseMask
anchorMask
private int subexpInfRecursiveCheck(org.joni.ast.Node, boolean);
descriptor: (Lorg/joni/ast/Node;Z)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 5 - 10
5: 18
6: 29
7: 23
8: 2
9: 11
10: 27
default: 40
}
2: StackMap locals: int
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 5
start local 5 3: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top org.joni.ast.ListNode
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.subexpInfRecursiveCheck:(Lorg/joni/ast/Node;Z)I
istore 6
start local 6 4: iload 6
iconst_2
if_icmpne 5
iload 6
ireturn
5: StackMap locals: int
StackMap stack:
iload 3
iload 6
ior
istore 3
6: iload 2
ifeq 9
7: aload 0
aload 5
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 4
start local 4 8: iload 4
ifeq 9
iconst_0
istore 2
end local 6 end local 4 9: StackMap locals:
StackMap stack:
aload 5
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 5
ifnonnull 3
10: goto 40
end local 5 11: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 6
start local 6 12: iconst_1
istore 3
13: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top org.joni.ast.ListNode
StackMap stack:
aload 0
aload 6
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.subexpInfRecursiveCheck:(Lorg/joni/ast/Node;Z)I
istore 7
start local 7 14: iload 7
iconst_2
if_icmpne 15
iload 7
ireturn
15: StackMap locals: int
StackMap stack:
iload 3
iload 7
iand
istore 3
end local 7 16: aload 6
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 6
ifnonnull 13
17: goto 40
end local 6 18: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
aload 1
checkcast org.joni.ast.QuantifierNode
astore 7
start local 7 19: aload 0
aload 7
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.subexpInfRecursiveCheck:(Lorg/joni/ast/Node;Z)I
istore 3
20: iload 3
iconst_1
if_icmpne 40
21: aload 7
getfield org.joni.ast.QuantifierNode.lower:I
ifne 40
iconst_0
istore 3
22: goto 40
end local 7 23: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 8
start local 8 24: aload 8
getfield org.joni.ast.AnchorNode.type:I
lookupswitch { // 4
1024: 25
2048: 25
4096: 25
8192: 25
default: 26
}
25: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top top org.joni.ast.AnchorNode
StackMap stack:
aload 0
aload 8
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.subexpInfRecursiveCheck:(Lorg/joni/ast/Node;Z)I
istore 3
26: StackMap locals:
StackMap stack:
goto 40
end local 8 27: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.CallNode
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
iload 2
invokevirtual org.joni.Analyser.subexpInfRecursiveCheck:(Lorg/joni/ast/Node;Z)I
istore 3
28: goto 40
29: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 9
start local 9 30: aload 9
invokevirtual org.joni.ast.EncloseNode.isMark2:()Z
ifeq 32
31: iconst_0
ireturn
32: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top top top org.joni.ast.EncloseNode
StackMap stack:
aload 9
invokevirtual org.joni.ast.EncloseNode.isMark1:()Z
ifeq 36
33: iload 2
ifne 34
iconst_1
goto 35
StackMap locals:
StackMap stack:
34: iconst_2
StackMap locals:
StackMap stack: int
35: ireturn
36: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.joni.ast.EncloseNode.setMark2:()V
37: aload 0
aload 9
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.subexpInfRecursiveCheck:(Lorg/joni/ast/Node;Z)I
istore 3
38: aload 9
invokevirtual org.joni.ast.EncloseNode.clearMark2:()V
39: goto 40
end local 9 40: StackMap locals: org.joni.Analyser org.joni.ast.Node int 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 41 0 this Lorg/joni/Analyser;
0 41 1 node Lorg/joni/ast/Node;
0 41 2 head Z
1 41 3 r I
8 9 4 min I
3 11 5 x Lorg/joni/ast/ListNode;
4 9 6 ret I
12 18 6 can Lorg/joni/ast/ListNode;
14 16 7 ret I
19 23 7 qn Lorg/joni/ast/QuantifierNode;
24 27 8 an Lorg/joni/ast/AnchorNode;
30 40 9 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
head
protected final int subexpInfRecursiveCheckTrav(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=6, 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 { // 5 - 9
5: 6
6: 12
7: 8
8: 2
9: 2
default: 20
}
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:
aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpInfRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
istore 2
4: iload 2
ifne 20
aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 3
ifnonnull 3
5: goto 20
end local 3 6: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.QuantifierNode
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpInfRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
istore 2
7: goto 20
8: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 4
start local 4 9: aload 4
getfield org.joni.ast.AnchorNode.type:I
lookupswitch { // 4
1024: 10
2048: 10
4096: 10
8192: 10
default: 11
}
10: StackMap locals: org.joni.Analyser org.joni.ast.Node int top org.joni.ast.AnchorNode
StackMap stack:
aload 0
aload 4
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpInfRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
istore 2
11: StackMap locals:
StackMap stack:
goto 20
end local 4 12: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 5
start local 5 13: aload 5
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 18
14: aload 5
invokevirtual org.joni.ast.EncloseNode.setMark1:()V
15: aload 0
aload 5
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iconst_1
invokevirtual org.joni.Analyser.subexpInfRecursiveCheck:(Lorg/joni/ast/Node;Z)I
istore 2
16: iload 2
ifle 17
aload 0
ldc "never ending recursion"
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;)V
17: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top org.joni.ast.EncloseNode
StackMap stack:
aload 5
invokevirtual org.joni.ast.EncloseNode.clearMark1:()V
18: StackMap locals:
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpInfRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
istore 2
19: goto 20
end local 5 20: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/joni/Analyser;
0 21 1 node Lorg/joni/ast/Node;
1 21 2 r I
3 6 3 can Lorg/joni/ast/ListNode;
9 12 4 an Lorg/joni/ast/AnchorNode;
13 20 5 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
private int subexpRecursiveCheck(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, 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 { // 5 - 10
5: 6
6: 16
7: 8
8: 2
9: 2
10: 12
default: 25
}
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.Analyser.subexpRecursiveCheck:(Lorg/joni/ast/Node;)I
ior
istore 2
4: aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 3
ifnonnull 3
5: goto 25
end local 3 6: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.QuantifierNode
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpRecursiveCheck:(Lorg/joni/ast/Node;)I
istore 2
7: goto 25
8: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 4
start local 4 9: aload 4
getfield org.joni.ast.AnchorNode.type:I
lookupswitch { // 4
1024: 10
2048: 10
4096: 10
8192: 10
default: 11
}
10: StackMap locals: org.joni.Analyser org.joni.ast.Node int top org.joni.ast.AnchorNode
StackMap stack:
aload 0
aload 4
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpRecursiveCheck:(Lorg/joni/ast/Node;)I
istore 2
11: StackMap locals:
StackMap stack:
goto 25
end local 4 12: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.CallNode
astore 5
start local 5 13: aload 0
aload 5
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
invokevirtual org.joni.Analyser.subexpRecursiveCheck:(Lorg/joni/ast/Node;)I
istore 2
14: iload 2
ifeq 25
aload 5
invokevirtual org.joni.ast.CallNode.setRecursion:()V
15: goto 25
end local 5 16: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 6
start local 6 17: aload 6
invokevirtual org.joni.ast.EncloseNode.isMark2:()Z
ifeq 19
18: iconst_0
ireturn
19: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top org.joni.ast.EncloseNode
StackMap stack:
aload 6
invokevirtual org.joni.ast.EncloseNode.isMark1:()Z
ifeq 21
20: iconst_1
ireturn
21: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.joni.ast.EncloseNode.setMark2:()V
22: aload 0
aload 6
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpRecursiveCheck:(Lorg/joni/ast/Node;)I
istore 2
23: aload 6
invokevirtual org.joni.ast.EncloseNode.clearMark2:()V
24: goto 25
end local 6 25: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/joni/Analyser;
0 26 1 node Lorg/joni/ast/Node;
1 26 2 r I
3 6 3 can Lorg/joni/ast/ListNode;
9 12 4 an Lorg/joni/ast/AnchorNode;
13 16 5 cn Lorg/joni/ast/CallNode;
17 25 6 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
protected final int subexpRecursiveCheckTrav(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=7, 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 { // 5 - 9
5: 8
6: 17
7: 13
8: 2
9: 2
default: 27
}
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:
aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
istore 4
start local 4 4: iload 4
iconst_1
if_icmpne 6
5: iconst_1
istore 2
end local 4 6: StackMap locals:
StackMap stack:
aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 3
ifnonnull 3
7: goto 27
end local 3 8: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.QuantifierNode
astore 4
start local 4 9: aload 0
aload 4
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
istore 2
10: aload 4
getfield org.joni.ast.QuantifierNode.upper:I
ifne 27
11: iload 2
iconst_1
if_icmpne 27
aload 4
iconst_1
putfield org.joni.ast.QuantifierNode.isRefered:Z
12: goto 27
end local 4 13: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 5
start local 5 14: aload 5
getfield org.joni.ast.AnchorNode.type:I
lookupswitch { // 4
1024: 15
2048: 15
4096: 15
8192: 15
default: 16
}
15: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top org.joni.ast.AnchorNode
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
istore 2
16: StackMap locals:
StackMap stack:
goto 27
end local 5 17: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 6
start local 6 18: aload 6
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifne 24
19: aload 6
invokevirtual org.joni.ast.EncloseNode.isCalled:()Z
ifeq 24
20: aload 6
invokevirtual org.joni.ast.EncloseNode.setMark1:()V
21: aload 0
aload 6
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpRecursiveCheck:(Lorg/joni/ast/Node;)I
istore 2
22: iload 2
ifeq 23
aload 6
invokevirtual org.joni.ast.EncloseNode.setRecursion:()V
23: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top org.joni.ast.EncloseNode
StackMap stack:
aload 6
invokevirtual org.joni.ast.EncloseNode.clearMark1:()V
24: StackMap locals:
StackMap stack:
aload 0
aload 6
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.subexpRecursiveCheckTrav:(Lorg/joni/ast/Node;)I
istore 2
25: aload 6
invokevirtual org.joni.ast.EncloseNode.isCalled:()Z
ifeq 27
iload 2
iconst_1
ior
istore 2
26: goto 27
end local 6 27: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/joni/Analyser;
0 28 1 node Lorg/joni/ast/Node;
1 28 2 r I
3 8 3 can Lorg/joni/ast/ListNode;
4 6 4 ret I
9 13 4 qn Lorg/joni/ast/QuantifierNode;
14 17 5 an Lorg/joni/ast/AnchorNode;
18 27 6 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
private void setCallAttr(org.joni.ast.CallNode);
descriptor: (Lorg/joni/ast/CallNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.memNodes:[Lorg/joni/ast/EncloseNode;
aload 1
getfield org.joni.ast.CallNode.groupNum:I
aaload
astore 2
start local 2 1: aload 2
ifnonnull 2
aload 0
ldc "undefined name <%n> reference"
aload 1
getfield org.joni.ast.CallNode.nameP:I
aload 1
getfield org.joni.ast.CallNode.nameEnd:I
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;II)V
2: StackMap locals: org.joni.ast.EncloseNode
StackMap stack:
aload 2
invokevirtual org.joni.ast.EncloseNode.setCalled:()V
3: aload 1
aload 2
invokevirtual org.joni.ast.CallNode.setTarget:(Lorg/joni/ast/EncloseNode;)V
4: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.btMemStart:I
aload 1
getfield org.joni.ast.CallNode.groupNum:I
invokestatic org.joni.BitStatus.bsOnAt:(II)I
putfield org.joni.ScanEnvironment.btMemStart:I
5: aload 1
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.unsetAddrList:Lorg/joni/UnsetAddrList;
putfield org.joni.ast.CallNode.unsetAddrList:Lorg/joni/UnsetAddrList;
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/joni/Analyser;
0 7 1 cn Lorg/joni/ast/CallNode;
1 7 2 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
cn
protected final void setupSubExpCall(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 5 - 10
5: 9
6: 11
7: 34
8: 1
9: 5
10: 13
default: 37
}
1: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 2
start local 2 2: StackMap locals: org.joni.ast.ListNode
StackMap stack:
aload 0
aload 2
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.setupSubExpCall:(Lorg/joni/ast/Node;)V
3: aload 2
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 2
ifnonnull 2
4: goto 37
end local 2 5: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 3
start local 3 6: StackMap locals: org.joni.Analyser org.joni.ast.Node top org.joni.ast.ListNode
StackMap stack:
aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.setupSubExpCall:(Lorg/joni/ast/Node;)V
7: aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 3
ifnonnull 6
8: goto 37
end local 3 9: StackMap locals: org.joni.Analyser org.joni.ast.Node
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.QuantifierNode
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.setupSubExpCall:(Lorg/joni/ast/Node;)V
10: goto 37
11: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.EncloseNode
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.setupSubExpCall:(Lorg/joni/ast/Node;)V
12: goto 37
13: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.CallNode
astore 4
start local 4 14: aload 4
getfield org.joni.ast.CallNode.groupNum:I
ifeq 21
15: aload 4
getfield org.joni.ast.CallNode.groupNum:I
istore 5
start local 5 16: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numNamed:I
ifle 18
aload 0
getfield org.joni.Analyser.syntax:Lorg/joni/Syntax;
invokevirtual org.joni.Syntax.captureOnlyNamedGroup:()Z
ifeq 18
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.option:I
invokestatic org.joni.Option.isCaptureGroup:(I)Z
ifne 18
17: aload 0
ldc "numbered backref/call is not allowed. (use name)"
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;)V
18: StackMap locals: org.joni.Analyser org.joni.ast.Node top top org.joni.ast.CallNode int
StackMap stack:
iload 5
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
if_icmple 19
aload 0
ldc "undefined group <%n> reference"
aload 4
getfield org.joni.ast.CallNode.nameP:I
aload 4
getfield org.joni.ast.CallNode.nameEnd:I
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;II)V
19: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual org.joni.Analyser.setCallAttr:(Lorg/joni/ast/CallNode;)V
end local 5 20: goto 37
21: StackMap locals:
StackMap stack:
aload 4
getfield org.joni.ast.CallNode.nameP:I
aload 4
getfield org.joni.ast.CallNode.nameEnd:I
if_icmpne 24
22: aload 0
aload 4
invokevirtual org.joni.Analyser.setCallAttr:(Lorg/joni/ast/CallNode;)V
23: goto 37
24: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 4
getfield org.joni.ast.CallNode.name:[B
aload 4
getfield org.joni.ast.CallNode.nameP:I
aload 4
getfield org.joni.ast.CallNode.nameEnd:I
invokevirtual org.joni.Regex.nameToGroupNumbers:([BII)Lorg/joni/NameEntry;
astore 5
start local 5 25: aload 5
ifnonnull 28
26: aload 0
ldc "undefined name <%n> reference"
aload 4
getfield org.joni.ast.CallNode.nameP:I
aload 4
getfield org.joni.ast.CallNode.nameEnd:I
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;II)V
27: goto 37
StackMap locals: org.joni.NameEntry
StackMap stack:
28: aload 5
getfield org.joni.NameEntry.backNum:I
iconst_1
if_icmple 31
29: aload 0
ldc "multiplex definition name <%n> call"
aload 4
getfield org.joni.ast.CallNode.nameP:I
aload 4
getfield org.joni.ast.CallNode.nameEnd:I
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;II)V
30: goto 37
31: StackMap locals:
StackMap stack:
aload 4
aload 5
getfield org.joni.NameEntry.backRef1:I
putfield org.joni.ast.CallNode.groupNum:I
32: aload 0
aload 4
invokevirtual org.joni.Analyser.setCallAttr:(Lorg/joni/ast/CallNode;)V
end local 5 33: goto 37
end local 4 34: StackMap locals: org.joni.Analyser org.joni.ast.Node
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 5
start local 5 35: aload 5
getfield org.joni.ast.AnchorNode.type:I
lookupswitch { // 4
1024: 36
2048: 36
4096: 36
8192: 36
default: 37
}
36: StackMap locals: org.joni.Analyser org.joni.ast.Node top top top org.joni.ast.AnchorNode
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.setupSubExpCall:(Lorg/joni/ast/Node;)V
end local 5 37: StackMap locals: org.joni.Analyser org.joni.ast.Node
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/joni/Analyser;
0 38 1 node Lorg/joni/ast/Node;
2 5 2 ln Lorg/joni/ast/ListNode;
6 9 3 can Lorg/joni/ast/ListNode;
14 34 4 cn Lorg/joni/ast/CallNode;
16 20 5 gNum I
25 33 5 ne Lorg/joni/NameEntry;
35 37 5 an Lorg/joni/ast/AnchorNode;
MethodParameters:
Name Flags
node
private org.joni.ast.Node divideLookBehindAlternatives(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)Lorg/joni/ast/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.joni.ast.AnchorNode
astore 2
start local 2 1: aload 2
getfield org.joni.ast.AnchorNode.type:I
istore 3
start local 3 2: aload 2
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
astore 4
start local 4 3: aload 4
checkcast org.joni.ast.ListNode
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
astore 5
start local 5 4: aload 1
aload 4
invokevirtual org.joni.ast.Node.replaceWith:(Lorg/joni/ast/Node;)V
5: aload 1
astore 6
start local 6 6: aload 4
astore 1
7: aload 6
astore 4
8: aload 1
checkcast org.joni.ast.ListNode
aload 4
invokevirtual org.joni.ast.ListNode.setValue:(Lorg/joni/ast/Node;)V
9: aload 4
checkcast org.joni.ast.AnchorNode
aload 5
invokevirtual org.joni.ast.AnchorNode.setTarget:(Lorg/joni/ast/Node;)V
10: aload 1
astore 5
11: goto 15
12: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.ast.AnchorNode int org.joni.ast.Node org.joni.ast.Node org.joni.ast.Node
StackMap stack:
new org.joni.ast.AnchorNode
dup
iload 3
invokespecial org.joni.ast.AnchorNode.<init>:(I)V
astore 7
start local 7 13: aload 7
aload 5
checkcast org.joni.ast.ListNode
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.AnchorNode.setTarget:(Lorg/joni/ast/Node;)V
14: aload 5
checkcast org.joni.ast.ListNode
aload 7
invokevirtual org.joni.ast.ListNode.setValue:(Lorg/joni/ast/Node;)V
end local 7 15: StackMap locals:
StackMap stack:
aload 5
checkcast org.joni.ast.ListNode
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 5
ifnonnull 12
16: iload 3
sipush 8192
if_icmpne 20
17: aload 1
astore 5
18: StackMap locals:
StackMap stack:
aload 5
checkcast org.joni.ast.ListNode
invokevirtual org.joni.ast.ListNode.toListNode:()V
19: aload 5
checkcast org.joni.ast.ListNode
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 5
ifnonnull 18
20: StackMap locals:
StackMap stack:
aload 1
areturn
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 21 0 this Lorg/joni/Analyser;
0 21 1 node Lorg/joni/ast/Node;
1 21 2 an Lorg/joni/ast/AnchorNode;
2 21 3 anchorType I
3 21 4 head Lorg/joni/ast/Node;
4 21 5 np Lorg/joni/ast/Node;
6 21 6 tmp Lorg/joni/ast/Node;
13 15 7 insert Lorg/joni/ast/AnchorNode;
MethodParameters:
Name Flags
node
private org.joni.ast.Node setupLookBehind(org.joni.ast.AnchorNode);
descriptor: (Lorg/joni/ast/AnchorNode;)Lorg/joni/ast/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;)I
istore 2
start local 2 1: aload 0
getfield org.joni.Analyser.returnCode:I
tableswitch { // -2 - 0
-2: 6
-1: 4
0: 2
default: 9
}
2: StackMap locals: int
StackMap stack:
aload 1
iload 2
putfield org.joni.ast.AnchorNode.charLength:I
3: goto 9
4: StackMap locals:
StackMap stack:
aload 0
ldc "invalid pattern in look-behind"
invokevirtual org.joni.Analyser.newSyntaxException:(Ljava/lang/String;)V
5: goto 9
6: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.syntax:Lorg/joni/Syntax;
invokevirtual org.joni.Syntax.differentLengthAltLookBehind:()Z
ifeq 8
7: aload 0
aload 1
invokevirtual org.joni.Analyser.divideLookBehindAlternatives:(Lorg/joni/ast/Node;)Lorg/joni/ast/Node;
areturn
8: StackMap locals:
StackMap stack:
aload 0
ldc "invalid pattern in look-behind"
invokevirtual org.joni.Analyser.newSyntaxException:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/joni/Analyser;
0 10 1 node Lorg/joni/ast/AnchorNode;
1 10 2 len I
MethodParameters:
Name Flags
node
private void nextSetup(org.joni.ast.Node, org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;Lorg/joni/ast/Node;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.joni.ast.Node.getType:()I
istore 3
start local 3 1: iload 3
iconst_5
if_icmpne 18
2: aload 1
checkcast org.joni.ast.QuantifierNode
astore 4
start local 4 3: aload 4
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 23
aload 4
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifeq 23
4: aload 0
aload 2
iconst_1
invokevirtual org.joni.Analyser.getHeadValueNode:(Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
checkcast org.joni.ast.StringNode
astore 5
start local 5 5: aload 5
ifnull 7
aload 5
getfield org.joni.ast.StringNode.bytes:[B
aload 5
getfield org.joni.ast.StringNode.p:I
baload
ifeq 7
6: aload 4
aload 5
putfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
end local 5 7: StackMap locals: int org.joni.ast.QuantifierNode
StackMap stack:
aload 4
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmpgt 23
8: aload 4
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.isSimple:()Z
ifeq 23
9: aload 0
aload 4
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iconst_0
invokevirtual org.joni.Analyser.getHeadValueNode:(Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
astore 5
start local 5 10: aload 5
ifnull 23
11: aload 0
aload 2
iconst_0
invokevirtual org.joni.Analyser.getHeadValueNode:(Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
astore 6
start local 6 12: aload 6
ifnull 23
aload 0
aload 5
aload 6
invokevirtual org.joni.Analyser.isNotIncluded:(Lorg/joni/ast/Node;Lorg/joni/ast/Node;)Z
ifeq 23
13: new org.joni.ast.EncloseNode
dup
iconst_4
invokespecial org.joni.ast.EncloseNode.<init>:(I)V
astore 7
start local 7 14: aload 7
invokevirtual org.joni.ast.EncloseNode.setStopBtSimpleRepeat:()V
15: aload 1
aload 7
invokevirtual org.joni.ast.Node.replaceWith:(Lorg/joni/ast/Node;)V
16: aload 7
aload 1
invokevirtual org.joni.ast.EncloseNode.setTarget:(Lorg/joni/ast/Node;)V
end local 7 end local 6 end local 5 end local 4 17: goto 23
StackMap locals:
StackMap stack:
18: iload 3
bipush 6
if_icmpne 23
19: aload 1
checkcast org.joni.ast.EncloseNode
astore 4
start local 4 20: aload 4
invokevirtual org.joni.ast.EncloseNode.isMemory:()Z
ifeq 23
21: aload 4
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
astore 1
end local 4 end local 3 22: goto 0
23: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/joni/Analyser;
0 24 1 node Lorg/joni/ast/Node;
0 24 2 nextNode Lorg/joni/ast/Node;
1 22 3 type I
3 17 4 qn Lorg/joni/ast/QuantifierNode;
5 7 5 n Lorg/joni/ast/StringNode;
10 17 5 x Lorg/joni/ast/Node;
12 17 6 y Lorg/joni/ast/Node;
14 17 7 en Lorg/joni/ast/EncloseNode;
20 22 4 en Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
nextNode
private void updateStringNodeCaseFoldSingleByte(org.joni.ast.StringNode, byte[]);
descriptor: (Lorg/joni/ast/StringNode;[B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.joni.ast.StringNode.end:I
istore 3
start local 3 1: aload 1
getfield org.joni.ast.StringNode.bytes:[B
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: aload 1
getfield org.joni.ast.StringNode.p:I
istore 6
start local 6 4: goto 16
5: StackMap locals: org.joni.Analyser org.joni.ast.StringNode byte[] int byte[] int int
StackMap stack:
aload 2
aload 4
iload 6
baload
sipush 255
iand
baload
istore 7
start local 7 6: iload 7
aload 4
iload 6
baload
if_icmpeq 14
7: iload 3
aload 1
getfield org.joni.ast.StringNode.p:I
isub
newarray 8
astore 8
start local 8 8: aload 4
aload 1
getfield org.joni.ast.StringNode.p:I
aload 8
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: goto 11
StackMap locals: int byte[]
StackMap stack:
10: aload 8
iload 5
iinc 5 1
aload 2
aload 4
iload 6
iinc 6 1
baload
sipush 255
iand
baload
bastore
StackMap locals:
StackMap stack:
11: iload 6
iload 3
if_icmplt 10
12: aload 1
aload 8
iconst_0
iload 5
invokevirtual org.joni.ast.StringNode.set:([BII)V
13: goto 17
end local 8 14: StackMap locals:
StackMap stack:
iinc 5 1
15: iinc 6 1
end local 7 16: StackMap locals:
StackMap stack:
iload 6
iload 3
if_icmplt 5
17: 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 18 0 this Lorg/joni/Analyser;
0 18 1 sn Lorg/joni/ast/StringNode;
0 18 2 toLower [B
1 18 3 end I
2 18 4 bytes [B
3 18 5 sp I
4 18 6 p I
6 16 7 lower B
8 14 8 sbuf [B
MethodParameters:
Name Flags
sn
toLower
private void updateStringNodeCaseFoldMultiByte(org.joni.ast.StringNode);
descriptor: (Lorg/joni/ast/StringNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=2
start local 0 start local 1 0: aload 1
getfield org.joni.ast.StringNode.bytes:[B
astore 2
start local 2 1: aload 1
getfield org.joni.ast.StringNode.end:I
istore 3
start local 3 2: aload 0
aload 1
getfield org.joni.ast.StringNode.p:I
putfield org.joni.Analyser.value:I
3: iconst_0
istore 4
start local 4 4: bipush 18
newarray 8
astore 5
start local 5 5: goto 30
6: StackMap locals: org.joni.Analyser org.joni.ast.StringNode byte[] int int byte[]
StackMap stack:
aload 0
getfield org.joni.Analyser.value:I
istore 6
start local 6 7: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.caseFoldFlag:I
aload 2
aload 0
iload 3
aload 5
invokevirtual org.jcodings.Encoding.mbcCaseFold:(I[BLorg/jcodings/IntHolder;I[B)I
istore 7
start local 7 8: iconst_0
istore 8
start local 8 9: goto 28
10: StackMap locals: int int int
StackMap stack:
aload 2
iload 6
iload 8
iadd
baload
aload 5
iload 8
baload
if_icmpeq 27
11: aload 1
invokevirtual org.joni.ast.StringNode.length:()I
iconst_1
ishl
newarray 8
astore 9
start local 9 12: aload 2
aload 1
getfield org.joni.ast.StringNode.p:I
aload 9
iconst_0
iload 6
aload 1
getfield org.joni.ast.StringNode.p:I
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: aload 0
iload 6
putfield org.joni.Analyser.value:I
14: goto 24
15: StackMap locals: byte[]
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.caseFoldFlag:I
aload 2
aload 0
iload 3
aload 5
invokevirtual org.jcodings.Encoding.mbcCaseFold:(I[BLorg/jcodings/IntHolder;I[B)I
istore 7
16: iconst_0
istore 8
goto 23
17: StackMap locals:
StackMap stack:
iload 4
aload 9
arraylength
if_icmplt 21
18: aload 9
arraylength
iconst_1
ishl
newarray 8
astore 10
start local 10 19: aload 9
iconst_0
aload 10
iconst_0
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
20: aload 10
astore 9
end local 10 21: StackMap locals:
StackMap stack:
aload 9
iload 4
iinc 4 1
aload 5
iload 8
baload
bastore
22: iinc 8 1
StackMap locals:
StackMap stack:
23: iload 8
iload 7
if_icmplt 17
24: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.value:I
iload 3
if_icmplt 15
25: aload 1
aload 9
iconst_0
iload 4
invokevirtual org.joni.ast.StringNode.set:([BII)V
26: return
end local 9 27: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
28: iload 8
iload 7
if_icmplt 10
end local 8 29: iload 4
iload 7
iadd
istore 4
end local 7 end local 6 30: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.value:I
iload 3
if_icmplt 6
31: 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 32 0 this Lorg/joni/Analyser;
0 32 1 sn Lorg/joni/ast/StringNode;
1 32 2 bytes [B
2 32 3 end I
4 32 4 sp I
5 32 5 buf [B
7 30 6 ovalue I
8 30 7 len I
9 29 8 i I
12 27 9 sbuf [B
19 21 10 tmp [B
MethodParameters:
Name Flags
sn
private void updateStringNodeCaseFold(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.joni.ast.StringNode
astore 2
start local 2 1: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.toLowerCaseTable:()[B
astore 3
start local 3 2: aload 3
ifnull 5
3: aload 0
aload 2
aload 3
invokevirtual org.joni.Analyser.updateStringNodeCaseFoldSingleByte:(Lorg/joni/ast/StringNode;[B)V
4: goto 6
5: StackMap locals: org.joni.ast.StringNode byte[]
StackMap stack:
aload 0
aload 2
invokevirtual org.joni.Analyser.updateStringNodeCaseFoldMultiByte:(Lorg/joni/ast/StringNode;)V
6: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/joni/Analyser;
0 7 1 node Lorg/joni/ast/Node;
1 7 2 sn Lorg/joni/ast/StringNode;
2 7 3 toLower [B
MethodParameters:
Name Flags
node
private org.joni.ast.Node expandCaseFoldMakeRemString(byte[], int, int);
descriptor: ([BII)Lorg/joni/ast/Node;
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: new org.joni.ast.StringNode
dup
aload 1
iload 2
iload 3
invokespecial org.joni.ast.StringNode.<init>:([BII)V
astore 4
start local 4 1: aload 0
aload 4
invokevirtual org.joni.Analyser.updateStringNodeCaseFold:(Lorg/joni/ast/Node;)V
2: aload 4
invokevirtual org.joni.ast.StringNode.setAmbig:()V
3: aload 4
invokevirtual org.joni.ast.StringNode.setDontGetOptInfo:()V
4: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/joni/Analyser;
0 5 1 bytes [B
0 5 2 p I
0 5 3 end I
1 5 4 node Lorg/joni/ast/StringNode;
MethodParameters:
Name Flags
bytes
p
end
private boolean isCaseFoldVariableLength(int, org.jcodings.CaseFoldCodeItem[], int);
descriptor: (I[Lorg/jcodings/CaseFoldCodeItem;I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 2
iload 4
aaload
getfield org.jcodings.CaseFoldCodeItem.byteLen:I
iload 3
if_icmpne 3
aload 2
iload 4
aaload
getfield org.jcodings.CaseFoldCodeItem.code:[I
arraylength
iconst_1
if_icmpeq 4
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 1
if_icmplt 2
end local 4 6: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/joni/Analyser;
0 7 1 itemNum I
0 7 2 items [Lorg/jcodings/CaseFoldCodeItem;
0 7 3 slen I
1 6 4 i I
MethodParameters:
Name Flags
itemNum
items
slen
private boolean expandCaseFoldStringAlt(int, org.jcodings.CaseFoldCodeItem[], byte[], int, int, int, org.jcodings.ObjPtr<org.joni.ast.Node>);
descriptor: (I[Lorg/jcodings/CaseFoldCodeItem;[BIIILorg/jcodings/ObjPtr;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=17, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: iconst_0
istore 8
start local 8 1: iconst_0
istore 9
start local 9 2: goto 7
3: StackMap locals: int int
StackMap stack:
aload 2
iload 9
aaload
getfield org.jcodings.CaseFoldCodeItem.byteLen:I
iload 5
if_icmpeq 6
4: iconst_1
istore 8
5: goto 8
6: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
7: iload 9
iload 1
if_icmplt 3
end local 9 8: StackMap locals:
StackMap stack:
aconst_null
astore 9
start local 9 9: iload 8
ifeq 16
10: aload 7
aconst_null
aconst_null
invokestatic org.joni.ast.ListNode.newAlt:(Lorg/joni/ast/Node;Lorg/joni/ast/ListNode;)Lorg/joni/ast/ListNode;
dup
astore 9
putfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
11: aconst_null
aconst_null
invokestatic org.joni.ast.ListNode.newList:(Lorg/joni/ast/Node;Lorg/joni/ast/ListNode;)Lorg/joni/ast/ListNode;
astore 11
start local 11 12: aload 9
aload 11
invokevirtual org.joni.ast.ListNode.setValue:(Lorg/joni/ast/Node;)V
13: aconst_null
aconst_null
invokestatic org.joni.ast.ListNode.newAlt:(Lorg/joni/ast/Node;Lorg/joni/ast/ListNode;)Lorg/joni/ast/ListNode;
astore 10
start local 10 14: aload 11
aload 10
invokevirtual org.joni.ast.ListNode.setValue:(Lorg/joni/ast/Node;)V
15: goto 18
end local 11 end local 10 16: StackMap locals: org.joni.ast.ListNode
StackMap stack:
aload 7
aconst_null
aconst_null
invokestatic org.joni.ast.ListNode.newAlt:(Lorg/joni/ast/Node;Lorg/joni/ast/ListNode;)Lorg/joni/ast/ListNode;
dup
astore 10
start local 10 17: putfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
18: StackMap locals: org.joni.ast.ListNode
StackMap stack:
new org.joni.ast.StringNode
dup
aload 3
iload 4
iload 4
iload 5
iadd
invokespecial org.joni.ast.StringNode.<init>:([BII)V
astore 12
start local 12 19: aload 10
aload 12
invokevirtual org.joni.ast.ListNode.setValue:(Lorg/joni/ast/Node;)V
20: iconst_0
istore 13
start local 13 21: goto 44
22: StackMap locals: org.joni.Analyser int org.jcodings.CaseFoldCodeItem[] byte[] int int int org.jcodings.ObjPtr int org.joni.ast.ListNode org.joni.ast.ListNode top org.joni.ast.StringNode int
StackMap stack:
new org.joni.ast.StringNode
dup
invokespecial org.joni.ast.StringNode.<init>:()V
astore 12
23: iconst_0
istore 14
start local 14 24: goto 26
StackMap locals: int
StackMap stack:
25: aload 12
aload 2
iload 13
aaload
getfield org.jcodings.CaseFoldCodeItem.code:[I
iload 14
iaload
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.ast.StringNode.catCode:(ILorg/jcodings/Encoding;)V
iinc 14 1
StackMap locals:
StackMap stack:
26: iload 14
aload 2
iload 13
aaload
getfield org.jcodings.CaseFoldCodeItem.code:[I
arraylength
if_icmplt 25
end local 14 27: aconst_null
aconst_null
invokestatic org.joni.ast.ListNode.newAlt:(Lorg/joni/ast/Node;Lorg/joni/ast/ListNode;)Lorg/joni/ast/ListNode;
astore 14
start local 14 28: aload 2
iload 13
aaload
getfield org.jcodings.CaseFoldCodeItem.byteLen:I
iload 5
if_icmpeq 40
29: iload 4
aload 2
iload 13
aaload
getfield org.jcodings.CaseFoldCodeItem.byteLen:I
iadd
istore 15
start local 15 30: iload 15
iload 6
if_icmpge 36
31: aload 0
aload 3
iload 15
iload 6
invokevirtual org.joni.Analyser.expandCaseFoldMakeRemString:([BII)Lorg/joni/ast/Node;
astore 16
start local 16 32: aconst_null
aload 12
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
astore 11
start local 11 33: aload 11
aload 16
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
pop
34: aload 14
aload 11
invokevirtual org.joni.ast.ListNode.setValue:(Lorg/joni/ast/Node;)V
end local 16 35: goto 37
end local 11 36: StackMap locals: org.joni.Analyser int org.jcodings.CaseFoldCodeItem[] byte[] int int int org.jcodings.ObjPtr int org.joni.ast.ListNode org.joni.ast.ListNode top org.joni.ast.StringNode int org.joni.ast.ListNode int
StackMap stack:
aload 14
aload 12
invokevirtual org.joni.ast.ListNode.setValue:(Lorg/joni/ast/Node;)V
37: StackMap locals:
StackMap stack:
aload 9
aload 14
invokevirtual org.joni.ast.ListNode.setTail:(Lorg/joni/ast/ListNode;)V
38: aload 14
astore 9
end local 15 39: goto 43
40: StackMap locals:
StackMap stack:
aload 14
aload 12
invokevirtual org.joni.ast.ListNode.setValue:(Lorg/joni/ast/Node;)V
41: aload 10
aload 14
invokevirtual org.joni.ast.ListNode.setTail:(Lorg/joni/ast/ListNode;)V
42: aload 14
astore 10
end local 14 43: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
44: iload 13
iload 1
if_icmplt 22
end local 13 45: iload 8
ireturn
end local 12 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 46 0 this Lorg/joni/Analyser;
0 46 1 itemNum I
0 46 2 items [Lorg/jcodings/CaseFoldCodeItem;
0 46 3 bytes [B
0 46 4 p I
0 46 5 slen I
0 46 6 end I
0 46 7 node Lorg/jcodings/ObjPtr<Lorg/joni/ast/Node;>;
1 46 8 varlen Z
2 8 9 i I
9 46 9 varANode Lorg/joni/ast/ListNode;
14 16 10 altNode Lorg/joni/ast/ListNode;
17 46 10 altNode Lorg/joni/ast/ListNode;
12 16 11 listNode Lorg/joni/ast/ListNode;
33 36 11 listNode Lorg/joni/ast/ListNode;
19 46 12 snode Lorg/joni/ast/StringNode;
21 45 13 i I
24 27 14 j I
28 43 14 an Lorg/joni/ast/ListNode;
30 39 15 q I
32 35 16 rem Lorg/joni/ast/Node;
Signature: (I[Lorg/jcodings/CaseFoldCodeItem;[BIIILorg/jcodings/ObjPtr<Lorg/joni/ast/Node;>;)Z
MethodParameters:
Name Flags
itemNum
items
bytes
p
slen
end
node
private org.joni.ast.Node expandCaseFoldString(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)Lorg/joni/ast/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, 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.isAmbig:()Z
ifne 2
aload 2
invokevirtual org.joni.ast.StringNode.length:()I
ifgt 3
StackMap locals: org.joni.ast.StringNode
StackMap stack:
2: aload 1
areturn
3: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.ast.StringNode.bytes:[B
astore 3
start local 3 4: aload 2
getfield org.joni.ast.StringNode.p:I
istore 4
start local 4 5: aload 2
getfield org.joni.ast.StringNode.end:I
istore 5
start local 5 6: iconst_1
istore 6
start local 6 7: aconst_null
astore 7
start local 7 8: aconst_null
astore 8
start local 8 9: new org.jcodings.ObjPtr
dup
invokespecial org.jcodings.ObjPtr.<init>:()V
astore 9
start local 9 10: aconst_null
astore 10
start local 10 11: goto 39
12: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.ast.StringNode byte[] int int int org.joni.ast.ListNode org.joni.ast.ListNode org.jcodings.ObjPtr org.joni.ast.StringNode
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.caseFoldFlag:I
aload 3
iload 4
iload 5
invokevirtual org.jcodings.Encoding.caseFoldCodesByString:(I[BII)[Lorg/jcodings/CaseFoldCodeItem;
astore 11
start local 11 13: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 3
iload 4
iload 5
invokevirtual org.jcodings.Encoding.length:([BII)I
istore 12
start local 12 14: aload 11
arraylength
ifeq 15
aload 0
aload 11
arraylength
aload 11
iload 12
invokevirtual org.joni.Analyser.isCaseFoldVariableLength:(I[Lorg/jcodings/CaseFoldCodeItem;I)Z
ifne 22
15: StackMap locals: org.jcodings.CaseFoldCodeItem[] int
StackMap stack:
aload 10
ifnonnull 20
16: aload 8
ifnonnull 18
aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
ifnull 18
17: aconst_null
aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
checkcast org.joni.ast.Node
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
dup
astore 8
astore 7
18: StackMap locals:
StackMap stack:
aload 9
new org.joni.ast.StringNode
dup
invokespecial org.joni.ast.StringNode.<init>:()V
dup
astore 10
putfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
19: aload 8
ifnull 20
aload 8
aload 10
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
pop
20: StackMap locals:
StackMap stack:
aload 10
aload 3
iload 4
iload 4
iload 12
iadd
invokevirtual org.joni.ast.StringNode.catBytes:([BII)V
21: goto 38
22: StackMap locals:
StackMap stack:
iload 6
aload 11
arraylength
iconst_1
iadd
imul
istore 6
23: iload 6
bipush 8
if_icmple 24
goto 40
24: StackMap locals:
StackMap stack:
aload 10
ifnull 27
25: aload 0
aload 10
invokevirtual org.joni.Analyser.updateStringNodeCaseFold:(Lorg/joni/ast/Node;)V
26: aload 10
invokevirtual org.joni.ast.StringNode.setAmbig:()V
27: StackMap locals:
StackMap stack:
aload 8
ifnonnull 29
aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
ifnull 29
28: aconst_null
aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
checkcast org.joni.ast.Node
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
dup
astore 8
astore 7
29: StackMap locals:
StackMap stack:
aload 0
aload 11
arraylength
aload 11
aload 3
iload 4
iload 12
iload 5
aload 9
invokevirtual org.joni.Analyser.expandCaseFoldStringAlt:(I[Lorg/jcodings/CaseFoldCodeItem;[BIIILorg/jcodings/ObjPtr;)Z
ifeq 36
30: aload 8
ifnonnull 33
31: aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
checkcast org.joni.ast.ListNode
astore 7
32: goto 34
33: StackMap locals:
StackMap stack:
aload 8
aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
checkcast org.joni.ast.Node
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
pop
34: StackMap locals:
StackMap stack:
aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
checkcast org.joni.ast.ListNode
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
checkcast org.joni.ast.ListNode
astore 8
35: goto 37
36: StackMap locals:
StackMap stack:
aload 8
ifnull 37
aload 8
aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
checkcast org.joni.ast.Node
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
pop
37: StackMap locals:
StackMap stack:
aconst_null
astore 10
38: StackMap locals:
StackMap stack:
iload 4
iload 12
iadd
istore 4
end local 12 end local 11 39: StackMap locals:
StackMap stack:
iload 4
iload 5
if_icmplt 12
40: StackMap locals:
StackMap stack:
aload 10
ifnull 43
41: aload 0
aload 10
invokevirtual org.joni.Analyser.updateStringNodeCaseFold:(Lorg/joni/ast/Node;)V
42: aload 10
invokevirtual org.joni.ast.StringNode.setAmbig:()V
43: StackMap locals:
StackMap stack:
iload 4
iload 5
if_icmpge 51
44: aload 0
aload 3
iload 4
iload 5
invokevirtual org.joni.Analyser.expandCaseFoldMakeRemString:([BII)Lorg/joni/ast/Node;
astore 11
start local 11 45: aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
ifnull 47
aload 8
ifnonnull 47
46: aconst_null
aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
checkcast org.joni.ast.Node
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
dup
astore 8
astore 7
47: StackMap locals: org.joni.ast.Node
StackMap stack:
aload 8
ifnonnull 50
48: aload 9
aload 11
putfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
49: goto 51
50: StackMap locals:
StackMap stack:
aload 8
aload 11
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
pop
end local 11 51: StackMap locals:
StackMap stack:
aload 7
ifnull 52
aload 7
goto 53
StackMap locals:
StackMap stack:
52: aload 9
getfield org.jcodings.ObjPtr.p:Ljava/lang/Object;
checkcast org.joni.ast.Node
StackMap locals:
StackMap stack: org.joni.ast.Node
53: astore 11
start local 11 54: aload 1
aload 11
invokevirtual org.joni.ast.Node.replaceWith:(Lorg/joni/ast/Node;)V
55: aload 11
areturn
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 56 0 this Lorg/joni/Analyser;
0 56 1 node Lorg/joni/ast/Node;
1 56 2 sn Lorg/joni/ast/StringNode;
4 56 3 bytes [B
5 56 4 p I
6 56 5 end I
7 56 6 altNum I
8 56 7 topRoot Lorg/joni/ast/ListNode;
9 56 8 root Lorg/joni/ast/ListNode;
10 56 9 prevNode Lorg/jcodings/ObjPtr<Lorg/joni/ast/Node;>;
11 56 10 stringNode Lorg/joni/ast/StringNode;
13 39 11 items [Lorg/jcodings/CaseFoldCodeItem;
14 39 12 len I
45 51 11 srem Lorg/joni/ast/Node;
54 56 11 xnode Lorg/joni/ast/Node;
MethodParameters:
Name Flags
node
protected final int setupCombExpCheck(org.joni.ast.Node, int);
descriptor: (Lorg/joni/ast/Node;I)I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=13, args_size=3
start local 0 start local 1 start local 2 0: iload 2
istore 3
start local 3 1: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 5 - 10
5: 11
6: 47
7: 61
8: 2
9: 6
10: 55
default: 61
}
2: StackMap locals: int
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 5
start local 5 3: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top org.joni.ast.ListNode
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 3
invokevirtual org.joni.Analyser.setupCombExpCheck:(Lorg/joni/ast/Node;I)I
istore 3
4: iload 3
iflt 61
aload 5
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 5
ifnonnull 3
5: goto 61
end local 5 6: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 6
start local 6 7: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top org.joni.ast.ListNode
StackMap stack:
aload 0
aload 6
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupCombExpCheck:(Lorg/joni/ast/Node;I)I
istore 4
start local 4 8: iload 3
iload 4
ior
istore 3
9: iload 4
iflt 61
aload 6
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 6
ifnonnull 7
10: goto 61
end local 6 end local 4 11: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
aload 1
checkcast org.joni.ast.QuantifierNode
astore 7
start local 7 12: iload 2
istore 8
start local 8 13: iconst_0
istore 9
start local 9 14: aload 7
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifne 28
15: aload 7
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmple 28
16: iload 8
iconst_2
ior
istore 8
17: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.backrefedMem:I
ifne 28
18: aload 7
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.getType:()I
bipush 6
if_icmpne 28
19: aload 7
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
checkcast org.joni.ast.EncloseNode
astore 11
start local 11 20: aload 11
getfield org.joni.ast.EncloseNode.type:I
iconst_1
if_icmpne 28
21: aload 11
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.getType:()I
iconst_5
if_icmpne 28
22: aload 11
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
checkcast org.joni.ast.QuantifierNode
astore 12
start local 12 23: aload 12
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifeq 28
aload 12
getfield org.joni.ast.QuantifierNode.greedy:Z
aload 7
getfield org.joni.ast.QuantifierNode.greedy:Z
if_icmpne 28
24: aload 7
aload 7
getfield org.joni.ast.QuantifierNode.lower:I
ifne 25
iconst_1
goto 26
StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top org.joni.ast.QuantifierNode int int top org.joni.ast.EncloseNode org.joni.ast.QuantifierNode
StackMap stack: org.joni.ast.QuantifierNode
25: aload 7
getfield org.joni.ast.QuantifierNode.lower:I
StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top org.joni.ast.QuantifierNode int int top org.joni.ast.EncloseNode org.joni.ast.QuantifierNode
StackMap stack: org.joni.ast.QuantifierNode int
26: putfield org.joni.ast.QuantifierNode.upper:I
27: aload 7
getfield org.joni.ast.QuantifierNode.upper:I
iconst_1
if_icmpne 28
iload 2
istore 8
end local 12 end local 11 28: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top org.joni.ast.QuantifierNode int int
StackMap stack:
iload 2
iconst_2
iand
ifeq 31
29: aload 7
iconst_m1
putfield org.joni.ast.QuantifierNode.combExpCheckNum:I
30: goto 44
31: StackMap locals:
StackMap stack:
aload 7
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifeq 35
32: ldc 2147483647
istore 10
start local 10 33: iload 8
iconst_1
ior
istore 8
34: goto 36
end local 10 35: StackMap locals:
StackMap stack:
aload 7
getfield org.joni.ast.QuantifierNode.upper:I
aload 7
getfield org.joni.ast.QuantifierNode.lower:I
isub
istore 10
start local 10 36: StackMap locals: int
StackMap stack:
iload 10
sipush 512
if_icmplt 37
iload 9
iconst_4
ior
istore 9
37: StackMap locals:
StackMap stack:
iload 2
iconst_1
iand
ifeq 38
iload 10
ifne 39
38: StackMap locals:
StackMap stack:
iload 2
iconst_4
iand
ifeq 44
iload 10
sipush 512
if_icmplt 44
39: StackMap locals:
StackMap stack:
aload 7
getfield org.joni.ast.QuantifierNode.combExpCheckNum:I
ifne 44
40: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
dup
getfield org.joni.ScanEnvironment.numCombExpCheck:I
iconst_1
iadd
putfield org.joni.ScanEnvironment.numCombExpCheck:I
41: aload 7
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numCombExpCheck:I
putfield org.joni.ast.QuantifierNode.combExpCheckNum:I
42: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.currMaxRegNum:I
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.combExpMaxRegNum:I
if_icmple 44
43: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.currMaxRegNum:I
putfield org.joni.ScanEnvironment.combExpMaxRegNum:I
end local 10 44: StackMap locals:
StackMap stack:
aload 0
aload 7
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iload 8
invokevirtual org.joni.Analyser.setupCombExpCheck:(Lorg/joni/ast/Node;I)I
istore 3
45: iload 3
iload 9
ior
istore 3
46: goto 61
end local 9 end local 8 end local 7 47: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 11
start local 11 48: aload 11
getfield org.joni.ast.EncloseNode.type:I
tableswitch { // 1 - 1
1: 49
default: 53
}
49: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top top top top top org.joni.ast.EncloseNode
StackMap stack:
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.currMaxRegNum:I
aload 11
getfield org.joni.ast.EncloseNode.regNum:I
if_icmpge 51
50: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aload 11
getfield org.joni.ast.EncloseNode.regNum:I
putfield org.joni.ScanEnvironment.currMaxRegNum:I
51: StackMap locals:
StackMap stack:
aload 0
aload 11
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupCombExpCheck:(Lorg/joni/ast/Node;I)I
istore 3
52: goto 61
53: StackMap locals:
StackMap stack:
aload 0
aload 11
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupCombExpCheck:(Lorg/joni/ast/Node;I)I
istore 3
54: goto 61
end local 11 55: StackMap locals: org.joni.Analyser org.joni.ast.Node int int
StackMap stack:
aload 1
checkcast org.joni.ast.CallNode
astore 12
start local 12 56: aload 12
invokevirtual org.joni.ast.CallNode.isRecursion:()Z
ifeq 59
57: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
iconst_1
putfield org.joni.ScanEnvironment.hasRecursion:Z
58: goto 61
59: StackMap locals: org.joni.Analyser org.joni.ast.Node int int top top top top top top top top org.joni.ast.CallNode
StackMap stack:
aload 0
aload 12
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
iload 2
invokevirtual org.joni.Analyser.setupCombExpCheck:(Lorg/joni/ast/Node;I)I
istore 3
end local 12 60: goto 61
61: StackMap locals: org.joni.Analyser org.joni.ast.Node int 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 62 0 this Lorg/joni/Analyser;
0 62 1 node Lorg/joni/ast/Node;
0 62 2 state I
1 62 3 r I
8 11 4 ret I
3 6 5 ln Lorg/joni/ast/ListNode;
7 11 6 an Lorg/joni/ast/ListNode;
12 47 7 qn Lorg/joni/ast/QuantifierNode;
13 47 8 childState I
14 47 9 addState I
33 35 10 varNum I
36 44 10 varNum I
20 28 11 en Lorg/joni/ast/EncloseNode;
23 28 12 q Lorg/joni/ast/QuantifierNode;
48 55 11 en Lorg/joni/ast/EncloseNode;
56 60 12 cn Lorg/joni/ast/CallNode;
MethodParameters:
Name Flags
node
state
protected final org.joni.ast.Node setupTree(org.joni.ast.Node, int);
descriptor: (Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=15, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 0 - 10
0: 14
1: 13
2: 17
3: 17
4: 19
5: 33
6: 75
7: 105
8: 1
9: 9
10: 18
default: 122
}
1: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: StackMap locals: org.joni.ast.ListNode org.joni.ast.Node
StackMap stack:
aload 0
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
4: aload 4
ifnull 6
5: aload 0
aload 4
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
invokevirtual org.joni.Analyser.nextSetup:(Lorg/joni/ast/Node;Lorg/joni/ast/Node;)V
6: StackMap locals:
StackMap stack:
aload 3
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
astore 4
7: aload 3
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 3
ifnonnull 3
8: goto 122
end local 4 end local 3 9: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.ListNode
astore 5
start local 5 10: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top org.joni.ast.ListNode
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
iload 2
iconst_1
ior
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
11: aload 5
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 5
ifnonnull 10
12: goto 122
end local 5 13: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
goto 122
14: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
invokestatic org.joni.Option.isIgnoreCase:(I)Z
ifeq 122
aload 1
checkcast org.joni.ast.StringNode
invokevirtual org.joni.ast.StringNode.isRaw:()Z
ifne 122
15: aload 0
aload 1
invokevirtual org.joni.Analyser.expandCaseFoldString:(Lorg/joni/ast/Node;)Lorg/joni/ast/Node;
astore 1
16: goto 122
17: StackMap locals:
StackMap stack:
goto 122
18: StackMap locals:
StackMap stack:
goto 122
19: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.BackRefNode
astore 6
start local 6 20: iconst_0
istore 7
start local 7 21: goto 31
22: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top org.joni.ast.BackRefNode int
StackMap stack:
aload 6
getfield org.joni.ast.BackRefNode.back:[I
iload 7
iaload
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
if_icmple 25
23: aload 0
getfield org.joni.Analyser.syntax:Lorg/joni/Syntax;
invokevirtual org.joni.Syntax.op3OptionECMAScript:()Z
ifne 30
aload 0
ldc "invalid backref number/name"
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;)V
24: goto 30
25: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.backrefedMem:I
aload 6
getfield org.joni.ast.BackRefNode.back:[I
iload 7
iaload
invokestatic org.joni.BitStatus.bsOnAt:(II)I
putfield org.joni.ScanEnvironment.backrefedMem:I
26: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.btMemStart:I
aload 6
getfield org.joni.ast.BackRefNode.back:[I
iload 7
iaload
invokestatic org.joni.BitStatus.bsOnAt:(II)I
putfield org.joni.ScanEnvironment.btMemStart:I
27: aload 6
invokevirtual org.joni.ast.BackRefNode.isNestLevel:()Z
ifeq 29
28: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.btMemEnd:I
aload 6
getfield org.joni.ast.BackRefNode.back:[I
iload 7
iaload
invokestatic org.joni.BitStatus.bsOnAt:(II)I
putfield org.joni.ScanEnvironment.btMemEnd:I
29: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.memNodes:[Lorg/joni/ast/EncloseNode;
aload 6
getfield org.joni.ast.BackRefNode.back:[I
iload 7
iaload
aaload
invokevirtual org.joni.ast.EncloseNode.setMemBackrefed:()V
30: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
31: iload 7
aload 6
getfield org.joni.ast.BackRefNode.backNum:I
if_icmplt 22
end local 7 32: goto 122
end local 6 33: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.QuantifierNode
astore 7
start local 7 34: aload 7
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
astore 8
start local 8 35: iload 2
iconst_4
iand
ifeq 36
aload 7
invokevirtual org.joni.ast.QuantifierNode.setInRepeat:()V
36: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top top org.joni.ast.QuantifierNode org.joni.ast.Node
StackMap stack:
aload 7
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifne 37
aload 7
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmplt 42
37: StackMap locals:
StackMap stack:
aload 0
aload 8
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 9
start local 9 38: iload 9
ifne 42
39: aload 7
iconst_1
putfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
40: aload 0
aload 8
invokevirtual org.joni.Analyser.quantifiersMemoryInfo:(Lorg/joni/ast/Node;)I
istore 10
start local 10 41: iload 10
ifle 42
aload 7
iload 10
putfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
end local 10 end local 9 42: StackMap locals:
StackMap stack:
iload 2
iconst_4
ior
istore 2
43: aload 7
getfield org.joni.ast.QuantifierNode.lower:I
aload 7
getfield org.joni.ast.QuantifierNode.upper:I
if_icmpeq 44
iload 2
bipush 8
ior
istore 2
44: StackMap locals:
StackMap stack:
aload 0
aload 8
iload 2
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
astore 8
45: aload 8
invokevirtual org.joni.ast.Node.getType:()I
ifne 66
46: aload 8
checkcast org.joni.ast.StringNode
astore 9
start local 9 47: aload 7
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmple 66
48: new org.joni.ast.StringNode
dup
aload 9
getfield org.joni.ast.StringNode.bytes:[B
aload 9
getfield org.joni.ast.StringNode.p:I
aload 9
getfield org.joni.ast.StringNode.end:I
invokespecial org.joni.ast.StringNode.<init>:([BII)V
astore 10
start local 10 49: aload 10
aload 9
getfield org.joni.ast.StringNode.flag:I
putfield org.joni.ast.StringNode.flag:I
50: aload 7
getfield org.joni.ast.QuantifierNode.lower:I
istore 12
start local 12 51: aload 9
invokevirtual org.joni.ast.StringNode.length:()I
istore 13
start local 13 52: iconst_1
istore 11
start local 11 53: goto 56
54: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top top org.joni.ast.QuantifierNode org.joni.ast.Node org.joni.ast.StringNode org.joni.ast.StringNode int int int
StackMap stack:
aload 10
aload 9
getfield org.joni.ast.StringNode.bytes:[B
aload 9
getfield org.joni.ast.StringNode.p:I
aload 9
getfield org.joni.ast.StringNode.end:I
invokevirtual org.joni.ast.StringNode.catBytes:([BII)V
55: iinc 11 1
StackMap locals:
StackMap stack:
56: iload 11
iload 12
if_icmpge 57
iload 11
iconst_1
iadd
iload 13
imul
bipush 100
if_icmple 54
57: StackMap locals:
StackMap stack:
iload 11
aload 7
getfield org.joni.ast.QuantifierNode.upper:I
if_icmplt 58
aload 7
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifeq 64
58: StackMap locals:
StackMap stack:
aload 7
dup
getfield org.joni.ast.QuantifierNode.lower:I
iload 11
isub
putfield org.joni.ast.QuantifierNode.lower:I
59: aload 7
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifne 60
aload 7
dup
getfield org.joni.ast.QuantifierNode.upper:I
iload 11
isub
putfield org.joni.ast.QuantifierNode.upper:I
60: StackMap locals:
StackMap stack:
aload 10
aconst_null
invokestatic org.joni.ast.ListNode.newList:(Lorg/joni/ast/Node;Lorg/joni/ast/ListNode;)Lorg/joni/ast/ListNode;
astore 14
start local 14 61: aload 7
aload 14
invokevirtual org.joni.ast.QuantifierNode.replaceWith:(Lorg/joni/ast/Node;)V
62: aload 14
aload 7
invokestatic org.joni.ast.ListNode.listAdd:(Lorg/joni/ast/ListNode;Lorg/joni/ast/Node;)Lorg/joni/ast/ListNode;
pop
end local 14 63: goto 122
64: StackMap locals:
StackMap stack:
aload 7
aload 10
invokevirtual org.joni.ast.QuantifierNode.replaceWith:(Lorg/joni/ast/Node;)V
65: goto 122
end local 13 end local 12 end local 11 end local 10 end local 9 66: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top top org.joni.ast.QuantifierNode org.joni.ast.Node
StackMap stack:
aload 7
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 122
aload 7
getfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
ifeq 122
67: aload 8
invokevirtual org.joni.ast.Node.getType:()I
iconst_5
if_icmpne 73
68: aload 8
checkcast org.joni.ast.QuantifierNode
astore 9
start local 9 69: aload 9
getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
ifnull 122
70: aload 7
aload 9
getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
putfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
71: aload 9
aconst_null
putfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
end local 9 72: goto 122
73: StackMap locals:
StackMap stack:
aload 7
aload 0
aload 7
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
iconst_1
invokevirtual org.joni.Analyser.getHeadValueNode:(Lorg/joni/ast/Node;Z)Lorg/joni/ast/Node;
putfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
74: goto 122
end local 8 end local 7 75: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 9
start local 9 76: aload 9
getfield org.joni.ast.EncloseNode.type:I
lookupswitch { // 5
1: 82
2: 77
4: 92
8: 98
16: 103
default: 104
}
77: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top top top top org.joni.ast.EncloseNode
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
istore 10
start local 10 78: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 9
getfield org.joni.ast.EncloseNode.option:I
putfield org.joni.Regex.options:I
79: aload 0
aload 9
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
80: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
iload 10
putfield org.joni.Regex.options:I
81: goto 122
end local 10 82: StackMap locals:
StackMap stack:
iload 2
bipush 27
iand
ifeq 84
83: aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.btMemStart:I
aload 9
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsOnAt:(II)I
putfield org.joni.ScanEnvironment.btMemStart:I
84: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.joni.ast.EncloseNode.isCalled:()Z
ifeq 85
iload 2
bipush 16
ior
istore 2
85: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
ifeq 88
86: iload 2
bipush 32
ior
istore 2
87: goto 90
StackMap locals:
StackMap stack:
88: iload 2
bipush 32
iand
ifeq 90
89: aload 9
invokevirtual org.joni.ast.EncloseNode.setRecursion:()V
90: StackMap locals:
StackMap stack:
aload 0
aload 9
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
91: goto 122
92: StackMap locals:
StackMap stack:
aload 0
aload 9
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
93: aload 9
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.getType:()I
iconst_5
if_icmpne 122
94: aload 9
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
checkcast org.joni.ast.QuantifierNode
astore 11
start local 11 95: aload 11
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifeq 122
aload 11
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmpgt 122
aload 11
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 122
96: aload 11
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.isSimple:()Z
ifeq 122
aload 9
invokevirtual org.joni.ast.EncloseNode.setStopBtSimpleRepeat:()V
end local 11 97: goto 122
98: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.joni.ast.EncloseNode.isNameRef:()Z
ifne 100
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numNamed:I
ifle 100
aload 0
getfield org.joni.Analyser.syntax:Lorg/joni/Syntax;
invokevirtual org.joni.Syntax.captureOnlyNamedGroup:()Z
ifeq 100
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.option:I
invokestatic org.joni.Option.isCaptureGroup:(I)Z
ifne 100
99: aload 0
ldc "numbered backref/call is not allowed. (use name)"
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;)V
100: StackMap locals:
StackMap stack:
aload 9
getfield org.joni.ast.EncloseNode.regNum:I
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.numMem:I
if_icmple 101
aload 0
ldc "invalid backref number/name"
invokevirtual org.joni.Analyser.newValueException:(Ljava/lang/String;)V
101: StackMap locals:
StackMap stack:
aload 0
aload 9
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
102: goto 122
103: StackMap locals:
StackMap stack:
aload 0
aload 9
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
104: StackMap locals:
StackMap stack:
goto 122
end local 9 105: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 10
start local 10 106: aload 10
getfield org.joni.ast.AnchorNode.type:I
lookupswitch { // 4
1024: 107
2048: 109
4096: 111
8192: 117
default: 122
}
107: StackMap locals: org.joni.Analyser org.joni.ast.Node int top top top top top top top org.joni.ast.AnchorNode
StackMap stack:
aload 0
aload 10
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
108: goto 122
109: StackMap locals:
StackMap stack:
aload 0
aload 10
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
iload 2
iconst_2
ior
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
110: goto 122
111: StackMap locals:
StackMap stack:
aload 0
aload 10
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
sipush 2031
iconst_3
ldc 78823
invokevirtual org.joni.Analyser.checkTypeTree:(Lorg/joni/ast/Node;III)Z
ifeq 112
aload 0
ldc "invalid pattern in look-behind"
invokevirtual org.joni.Analyser.newSyntaxException:(Ljava/lang/String;)V
112: StackMap locals:
StackMap stack:
aload 0
aload 10
invokevirtual org.joni.Analyser.setupLookBehind:(Lorg/joni/ast/AnchorNode;)Lorg/joni/ast/Node;
astore 1
113: aload 1
invokevirtual org.joni.ast.Node.getType:()I
bipush 7
if_icmpeq 114
goto 0
114: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.AnchorNode
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
iload 2
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
115: aload 0
aload 10
invokevirtual org.joni.Analyser.setupLookBehind:(Lorg/joni/ast/AnchorNode;)Lorg/joni/ast/Node;
astore 1
116: goto 122
117: StackMap locals:
StackMap stack:
aload 0
aload 10
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
sipush 2031
iconst_2
ldc 78823
invokevirtual org.joni.Analyser.checkTypeTree:(Lorg/joni/ast/Node;III)Z
ifeq 118
aload 0
ldc "invalid pattern in look-behind"
invokevirtual org.joni.Analyser.newSyntaxException:(Ljava/lang/String;)V
118: StackMap locals:
StackMap stack:
aload 0
aload 10
invokevirtual org.joni.Analyser.setupLookBehind:(Lorg/joni/ast/AnchorNode;)Lorg/joni/ast/Node;
astore 1
119: aload 1
invokevirtual org.joni.ast.Node.getType:()I
bipush 7
if_icmpeq 120
goto 0
120: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.AnchorNode
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
iload 2
iconst_2
ior
invokevirtual org.joni.Analyser.setupTree:(Lorg/joni/ast/Node;I)Lorg/joni/ast/Node;
pop
121: aload 0
aload 10
invokevirtual org.joni.Analyser.setupLookBehind:(Lorg/joni/ast/AnchorNode;)Lorg/joni/ast/Node;
astore 1
end local 10 122: StackMap locals: org.joni.Analyser org.joni.ast.Node int
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 123 0 this Lorg/joni/Analyser;
0 123 1 node Lorg/joni/ast/Node;
0 123 2 state I
2 9 3 lin Lorg/joni/ast/ListNode;
3 9 4 prev Lorg/joni/ast/Node;
10 13 5 aln Lorg/joni/ast/ListNode;
20 33 6 br Lorg/joni/ast/BackRefNode;
21 32 7 i I
34 75 7 qn Lorg/joni/ast/QuantifierNode;
35 75 8 target Lorg/joni/ast/Node;
38 42 9 d I
41 42 10 info I
47 66 9 sn Lorg/joni/ast/StringNode;
49 66 10 str Lorg/joni/ast/StringNode;
53 66 11 i I
51 66 12 n I
52 66 13 len I
61 63 14 list Lorg/joni/ast/ListNode;
69 72 9 tqn Lorg/joni/ast/QuantifierNode;
76 105 9 en Lorg/joni/ast/EncloseNode;
78 82 10 options I
95 97 11 tqn Lorg/joni/ast/QuantifierNode;
106 122 10 an Lorg/joni/ast/AnchorNode;
MethodParameters:
Name Flags
node
state
private void optimizeNodeLeft(org.joni.ast.Node, org.joni.NodeOptInfo, org.joni.OptEnvironment);
descriptor: (Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.joni.NodeOptInfo.clear:()V
1: aload 2
aload 3
getfield org.joni.OptEnvironment.mmd:Lorg/joni/MinMaxLen;
invokevirtual org.joni.NodeOptInfo.setBoundNode:(Lorg/joni/MinMaxLen;)V
2: aload 1
invokevirtual org.joni.ast.Node.getType:()I
tableswitch { // 0 - 10
0: 21
1: 43
2: 59
3: 85
4: 102
5: 132
6: 166
7: 87
8: 3
9: 12
10: 123
default: 189
}
3: StackMap locals:
StackMap stack:
new org.joni.OptEnvironment
dup
invokespecial org.joni.OptEnvironment.<init>:()V
astore 4
start local 4 4: new org.joni.NodeOptInfo
dup
invokespecial org.joni.NodeOptInfo.<init>:()V
astore 5
start local 5 5: aload 4
aload 3
invokevirtual org.joni.OptEnvironment.copy:(Lorg/joni/OptEnvironment;)V
6: aload 1
checkcast org.joni.ast.ListNode
astore 6
start local 6 7: StackMap locals: org.joni.OptEnvironment org.joni.NodeOptInfo org.joni.ast.ListNode
StackMap stack:
aload 0
aload 6
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
aload 5
aload 4
invokevirtual org.joni.Analyser.optimizeNodeLeft:(Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
8: aload 4
getfield org.joni.OptEnvironment.mmd:Lorg/joni/MinMaxLen;
aload 5
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
invokevirtual org.joni.MinMaxLen.add:(Lorg/joni/MinMaxLen;)V
9: aload 2
aload 5
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.NodeOptInfo.concatLeftNode:(Lorg/joni/NodeOptInfo;Lorg/jcodings/Encoding;)V
10: aload 6
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 6
ifnonnull 7
11: goto 190
end local 6 end local 5 end local 4 12: StackMap locals:
StackMap stack:
new org.joni.NodeOptInfo
dup
invokespecial org.joni.NodeOptInfo.<init>:()V
astore 4
start local 4 13: aload 1
checkcast org.joni.ast.ListNode
astore 5
start local 5 14: StackMap locals: org.joni.NodeOptInfo org.joni.ast.ListNode
StackMap stack:
aload 0
aload 5
getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
aload 4
aload 3
invokevirtual org.joni.Analyser.optimizeNodeLeft:(Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
15: aload 5
aload 1
if_acmpne 18
16: aload 2
aload 4
invokevirtual org.joni.NodeOptInfo.copy:(Lorg/joni/NodeOptInfo;)V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 2
aload 4
aload 3
invokevirtual org.joni.NodeOptInfo.altMerge:(Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
19: StackMap locals:
StackMap stack:
aload 5
getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
dup
astore 5
ifnonnull 14
20: goto 190
end local 5 end local 4 21: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.StringNode
astore 4
start local 4 22: aload 4
invokevirtual org.joni.ast.StringNode.length:()I
istore 5
start local 5 23: aload 4
invokevirtual org.joni.ast.StringNode.isAmbig:()Z
ifne 30
24: aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
aload 4
getfield org.joni.ast.StringNode.bytes:[B
aload 4
getfield org.joni.ast.StringNode.p:I
aload 4
getfield org.joni.ast.StringNode.end:I
aload 4
invokevirtual org.joni.ast.StringNode.isRaw:()Z
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.OptExactInfo.concatStr:([BIIZLorg/jcodings/Encoding;)V
25: aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
iconst_0
putfield org.joni.OptExactInfo.ignoreCase:I
26: iload 5
ifle 28
27: aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
aload 4
getfield org.joni.ast.StringNode.bytes:[B
aload 4
getfield org.joni.ast.StringNode.p:I
baload
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.OptMapInfo.addChar:(BLorg/jcodings/Encoding;)V
28: StackMap locals: org.joni.ast.StringNode int
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iload 5
iload 5
invokevirtual org.joni.MinMaxLen.set:(II)V
29: goto 40
30: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.joni.ast.StringNode.isDontGetOptInfo:()Z
ifeq 34
31: aload 4
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.ast.StringNode.length:(Lorg/jcodings/Encoding;)I
istore 7
start local 7 32: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.maxLength:()I
iload 7
imul
istore 6
end local 7 start local 6 33: goto 39
end local 6 34: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
aload 4
getfield org.joni.ast.StringNode.bytes:[B
aload 4
getfield org.joni.ast.StringNode.p:I
aload 4
getfield org.joni.ast.StringNode.end:I
aload 4
invokevirtual org.joni.ast.StringNode.isRaw:()Z
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.OptExactInfo.concatStr:([BIIZLorg/jcodings/Encoding;)V
35: aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
iconst_1
putfield org.joni.OptExactInfo.ignoreCase:I
36: iload 5
ifle 38
37: aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
aload 4
getfield org.joni.ast.StringNode.bytes:[B
aload 4
getfield org.joni.ast.StringNode.p:I
aload 4
getfield org.joni.ast.StringNode.end:I
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
aload 3
getfield org.joni.OptEnvironment.caseFoldFlag:I
invokevirtual org.joni.OptMapInfo.addCharAmb:([BIILorg/jcodings/Encoding;I)V
38: StackMap locals:
StackMap stack:
iload 5
istore 6
start local 6 39: StackMap locals: int
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iload 5
iload 6
invokevirtual org.joni.MinMaxLen.set:(II)V
end local 6 40: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
getfield org.joni.OptExactInfo.length:I
iload 5
if_icmpne 190
41: aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
iconst_1
putfield org.joni.OptExactInfo.reachEnd:Z
42: goto 190
end local 5 end local 4 43: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.CClassNode
astore 4
start local 4 44: aload 4
getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
ifnonnull 45
aload 4
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 49
45: StackMap locals: org.joni.ast.CClassNode
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.minLength:()I
istore 5
start local 5 46: aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.maxLength:()I
istore 6
start local 6 47: aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iload 5
iload 6
invokevirtual org.joni.MinMaxLen.set:(II)V
end local 6 end local 5 48: goto 190
49: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 50: goto 56
51: StackMap locals: int
StackMap stack:
aload 4
getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
iload 5
invokevirtual org.joni.BitSet.at:(I)Z
istore 6
start local 6 52: iload 6
ifeq 53
aload 4
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 54
StackMap locals: int
StackMap stack:
53: iload 6
ifne 55
aload 4
invokevirtual org.joni.ast.CClassNode.isNot:()Z
ifeq 55
54: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
iload 5
i2b
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.OptMapInfo.addChar:(BLorg/jcodings/Encoding;)V
end local 6 55: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
56: iload 5
sipush 256
if_icmplt 51
end local 5 57: aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iconst_1
iconst_1
invokevirtual org.joni.MinMaxLen.set:(II)V
58: goto 190
end local 4 59: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.maxLength:()I
istore 5
start local 5 60: iload 5
iconst_1
if_icmpne 82
61: iconst_1
istore 4
start local 4 62: aload 1
checkcast org.joni.ast.CTypeNode
astore 6
start local 6 63: aload 6
getfield org.joni.ast.CTypeNode.asciiRange:Z
ifeq 64
sipush 128
goto 65
StackMap locals: int int org.joni.ast.CTypeNode
StackMap stack:
64: sipush 256
StackMap locals:
StackMap stack: int
65: istore 7
start local 7 66: aload 6
getfield org.joni.ast.CTypeNode.ctype:I
tableswitch { // 12 - 12
12: 67
default: 81
}
67: StackMap locals: int
StackMap stack:
aload 6
getfield org.joni.ast.CTypeNode.not:Z
ifeq 75
68: iconst_0
istore 8
start local 8 69: goto 73
70: StackMap locals: int
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
iload 8
invokevirtual org.jcodings.Encoding.isWord:(I)Z
ifeq 71
iload 8
iload 7
if_icmplt 72
71: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
iload 8
i2b
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.OptMapInfo.addChar:(BLorg/jcodings/Encoding;)V
72: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
73: iload 8
sipush 256
if_icmplt 70
end local 8 74: goto 83
75: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 76: goto 80
77: StackMap locals: int
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
iload 8
invokevirtual org.jcodings.Encoding.isWord:(I)Z
ifeq 79
78: aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
iload 8
i2b
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.OptMapInfo.addChar:(BLorg/jcodings/Encoding;)V
79: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
80: iload 8
iload 7
if_icmplt 77
end local 8 end local 7 end local 6 81: StackMap locals:
StackMap stack:
goto 83
end local 4 82: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.NodeOptInfo org.joni.OptEnvironment top int
StackMap stack:
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.minLength:()I
istore 4
start local 4 83: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.NodeOptInfo org.joni.OptEnvironment int int
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iload 4
iload 5
invokevirtual org.joni.MinMaxLen.set:(II)V
84: goto 190
end local 5 end local 4 85: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.minLength:()I
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.jcodings.Encoding.maxLength:()I
invokevirtual org.joni.MinMaxLen.set:(II)V
86: goto 190
87: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.AnchorNode
astore 4
start local 4 88: aload 4
getfield org.joni.ast.AnchorNode.type:I
lookupswitch { // 10
1: 89
2: 89
4: 89
8: 89
16: 89
32: 89
1024: 91
2048: 89
4096: 89
8192: 101
default: 101
}
89: StackMap locals: org.joni.ast.AnchorNode
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
aload 4
getfield org.joni.ast.AnchorNode.type:I
invokevirtual org.joni.OptAnchorInfo.add:(I)V
90: goto 190
91: StackMap locals:
StackMap stack:
new org.joni.NodeOptInfo
dup
invokespecial org.joni.NodeOptInfo.<init>:()V
astore 5
start local 5 92: aload 0
aload 4
getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
aload 5
aload 3
invokevirtual org.joni.Analyser.optimizeNodeLeft:(Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
93: aload 5
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
getfield org.joni.OptExactInfo.length:I
ifle 96
94: aload 2
getfield org.joni.NodeOptInfo.expr:Lorg/joni/OptExactInfo;
aload 5
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
invokevirtual org.joni.OptExactInfo.copy:(Lorg/joni/OptExactInfo;)V
95: goto 98
StackMap locals: org.joni.NodeOptInfo
StackMap stack:
96: aload 5
getfield org.joni.NodeOptInfo.exm:Lorg/joni/OptExactInfo;
getfield org.joni.OptExactInfo.length:I
ifle 98
97: aload 2
getfield org.joni.NodeOptInfo.expr:Lorg/joni/OptExactInfo;
aload 5
getfield org.joni.NodeOptInfo.exm:Lorg/joni/OptExactInfo;
invokevirtual org.joni.OptExactInfo.copy:(Lorg/joni/OptExactInfo;)V
98: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.expr:Lorg/joni/OptExactInfo;
iconst_0
putfield org.joni.OptExactInfo.reachEnd:Z
99: aload 5
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
getfield org.joni.OptMapInfo.value:I
ifle 190
aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
aload 5
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
invokevirtual org.joni.OptMapInfo.copy:(Lorg/joni/OptMapInfo;)V
100: goto 190
end local 5 101: StackMap locals:
StackMap stack:
goto 190
end local 4 102: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.BackRefNode
astore 4
start local 4 103: aload 4
invokevirtual org.joni.ast.BackRefNode.isRecursion:()Z
ifeq 106
104: aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iconst_0
ldc 2147483647
invokevirtual org.joni.MinMaxLen.set:(II)V
105: goto 190
106: StackMap locals: org.joni.ast.BackRefNode
StackMap stack:
aload 3
getfield org.joni.OptEnvironment.scanEnv:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.memNodes:[Lorg/joni/ast/EncloseNode;
astore 5
start local 5 107: iconst_0
istore 6
start local 6 108: iconst_0
istore 7
start local 7 109: aload 5
ifnull 112
aload 5
aload 4
getfield org.joni.ast.BackRefNode.back:[I
iconst_0
iaload
aaload
ifnull 112
110: aload 0
aload 5
aload 4
getfield org.joni.ast.BackRefNode.back:[I
iconst_0
iaload
aaload
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 6
111: aload 0
aload 5
aload 4
getfield org.joni.ast.BackRefNode.back:[I
iconst_0
iaload
aaload
invokevirtual org.joni.Analyser.getMaxMatchLength:(Lorg/joni/ast/Node;)I
istore 7
112: StackMap locals: org.joni.ast.Node[] int int
StackMap stack:
iconst_1
istore 8
start local 8 113: goto 120
114: StackMap locals: int
StackMap stack:
aload 5
aload 4
getfield org.joni.ast.BackRefNode.back:[I
iload 8
iaload
aaload
ifnull 119
115: aload 0
aload 5
aload 4
getfield org.joni.ast.BackRefNode.back:[I
iload 8
iaload
aaload
invokevirtual org.joni.Analyser.getMinMatchLength:(Lorg/joni/ast/Node;)I
istore 9
start local 9 116: aload 0
aload 5
aload 4
getfield org.joni.ast.BackRefNode.back:[I
iload 8
iaload
aaload
invokevirtual org.joni.Analyser.getMaxMatchLength:(Lorg/joni/ast/Node;)I
istore 10
start local 10 117: iload 6
iload 9
if_icmple 118
iload 9
istore 6
118: StackMap locals: int int
StackMap stack:
iload 7
iload 10
if_icmpge 119
iload 10
istore 7
end local 10 end local 9 119: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
120: iload 8
aload 4
getfield org.joni.ast.BackRefNode.backNum:I
if_icmplt 114
end local 8 121: aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iload 6
iload 7
invokevirtual org.joni.MinMaxLen.set:(II)V
122: goto 190
end local 7 end local 6 end local 5 end local 4 123: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.NodeOptInfo org.joni.OptEnvironment
StackMap stack:
aload 1
checkcast org.joni.ast.CallNode
astore 4
start local 4 124: aload 4
invokevirtual org.joni.ast.CallNode.isRecursion:()Z
ifeq 127
125: aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iconst_0
ldc 2147483647
invokevirtual org.joni.MinMaxLen.set:(II)V
126: goto 190
127: StackMap locals: org.joni.ast.CallNode
StackMap stack:
aload 3
getfield org.joni.OptEnvironment.options:I
istore 5
start local 5 128: aload 3
aload 4
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
getfield org.joni.ast.EncloseNode.option:I
putfield org.joni.OptEnvironment.options:I
129: aload 0
aload 4
getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
aload 2
aload 3
invokevirtual org.joni.Analyser.optimizeNodeLeft:(Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
130: aload 3
iload 5
putfield org.joni.OptEnvironment.options:I
end local 5 end local 4 131: goto 190
132: StackMap locals:
StackMap stack:
new org.joni.NodeOptInfo
dup
invokespecial org.joni.NodeOptInfo.<init>:()V
astore 4
start local 4 133: aload 1
checkcast org.joni.ast.QuantifierNode
astore 5
start local 5 134: aload 0
aload 5
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
aload 4
aload 3
invokevirtual org.joni.Analyser.optimizeNodeLeft:(Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
135: aload 5
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifeq 141
136: aload 3
getfield org.joni.OptEnvironment.mmd:Lorg/joni/MinMaxLen;
getfield org.joni.MinMaxLen.max:I
ifne 141
aload 5
getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
invokevirtual org.joni.ast.Node.getType:()I
iconst_3
if_icmpne 141
aload 5
getfield org.joni.ast.QuantifierNode.greedy:Z
ifeq 141
137: aload 3
getfield org.joni.OptEnvironment.options:I
invokestatic org.joni.Option.isMultiline:(I)Z
ifeq 140
138: aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
ldc 32768
invokevirtual org.joni.OptAnchorInfo.add:(I)V
139: goto 141
140: StackMap locals: org.joni.NodeOptInfo org.joni.ast.QuantifierNode
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
sipush 16384
invokevirtual org.joni.OptAnchorInfo.add:(I)V
141: StackMap locals:
StackMap stack:
aload 5
getfield org.joni.ast.QuantifierNode.lower:I
ifle 157
142: aload 2
aload 4
invokevirtual org.joni.NodeOptInfo.copy:(Lorg/joni/NodeOptInfo;)V
143: aload 4
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
getfield org.joni.OptExactInfo.length:I
ifle 152
144: aload 4
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
getfield org.joni.OptExactInfo.reachEnd:Z
ifeq 152
145: iconst_2
istore 6
start local 6 146: goto 149
147: StackMap locals: int
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
aload 4
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.OptExactInfo.concat:(Lorg/joni/OptExactInfo;Lorg/jcodings/Encoding;)V
148: iinc 6 1
StackMap locals:
StackMap stack:
149: iload 6
aload 5
getfield org.joni.ast.QuantifierNode.lower:I
if_icmpgt 150
aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
invokevirtual org.joni.OptExactInfo.isFull:()Z
ifeq 147
150: StackMap locals:
StackMap stack:
iload 6
aload 5
getfield org.joni.ast.QuantifierNode.lower:I
if_icmpge 152
151: aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
iconst_0
putfield org.joni.OptExactInfo.reachEnd:Z
end local 6 152: StackMap locals:
StackMap stack:
aload 5
getfield org.joni.ast.QuantifierNode.lower:I
aload 5
getfield org.joni.ast.QuantifierNode.upper:I
if_icmpeq 155
153: aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
iconst_0
putfield org.joni.OptExactInfo.reachEnd:Z
154: aload 2
getfield org.joni.NodeOptInfo.exm:Lorg/joni/OptExactInfo;
iconst_0
putfield org.joni.OptExactInfo.reachEnd:Z
155: StackMap locals:
StackMap stack:
aload 5
getfield org.joni.ast.QuantifierNode.lower:I
iconst_1
if_icmple 157
156: aload 2
getfield org.joni.NodeOptInfo.exm:Lorg/joni/OptExactInfo;
iconst_0
putfield org.joni.OptExactInfo.reachEnd:Z
157: StackMap locals:
StackMap stack:
aload 4
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
getfield org.joni.MinMaxLen.min:I
aload 5
getfield org.joni.ast.QuantifierNode.lower:I
invokestatic org.joni.MinMaxLen.distanceMultiply:(II)I
istore 6
start local 6 158: aload 5
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
ifeq 163
159: aload 4
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
getfield org.joni.MinMaxLen.max:I
ifle 160
ldc 2147483647
goto 161
StackMap locals: int
StackMap stack:
160: iconst_0
StackMap locals:
StackMap stack: int
161: istore 7
start local 7 162: goto 164
end local 7 163: StackMap locals:
StackMap stack:
aload 4
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
getfield org.joni.MinMaxLen.max:I
aload 5
getfield org.joni.ast.QuantifierNode.upper:I
invokestatic org.joni.MinMaxLen.distanceMultiply:(II)I
istore 7
start local 7 164: StackMap locals: int
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iload 6
iload 7
invokevirtual org.joni.MinMaxLen.set:(II)V
165: goto 190
end local 7 end local 6 end local 5 end local 4 166: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.NodeOptInfo org.joni.OptEnvironment
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 4
start local 4 167: aload 4
getfield org.joni.ast.EncloseNode.type:I
lookupswitch { // 5
1: 173
2: 168
4: 185
8: 185
16: 187
default: 188
}
168: StackMap locals: org.joni.ast.EncloseNode
StackMap stack:
aload 3
getfield org.joni.OptEnvironment.options:I
istore 5
start local 5 169: aload 3
aload 4
getfield org.joni.ast.EncloseNode.option:I
putfield org.joni.OptEnvironment.options:I
170: aload 0
aload 4
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
aload 2
aload 3
invokevirtual org.joni.Analyser.optimizeNodeLeft:(Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
171: aload 3
iload 5
putfield org.joni.OptEnvironment.options:I
172: goto 190
end local 5 173: StackMap locals:
StackMap stack:
aload 4
dup
getfield org.joni.ast.EncloseNode.optCount:I
iconst_1
iadd
dup_x1
putfield org.joni.ast.EncloseNode.optCount:I
iconst_5
if_icmple 180
174: iconst_0
istore 6
start local 6 175: ldc 2147483647
istore 7
start local 7 176: aload 4
invokevirtual org.joni.ast.EncloseNode.isMinFixed:()Z
ifeq 177
aload 4
getfield org.joni.ast.EncloseNode.minLength:I
istore 6
177: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.NodeOptInfo org.joni.OptEnvironment org.joni.ast.EncloseNode top int int
StackMap stack:
aload 4
invokevirtual org.joni.ast.EncloseNode.isMaxFixed:()Z
ifeq 178
aload 4
getfield org.joni.ast.EncloseNode.maxLength:I
istore 7
178: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iload 6
iload 7
invokevirtual org.joni.MinMaxLen.set:(II)V
end local 7 end local 6 179: goto 190
180: StackMap locals: org.joni.Analyser org.joni.ast.Node org.joni.NodeOptInfo org.joni.OptEnvironment org.joni.ast.EncloseNode
StackMap stack:
aload 0
aload 4
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
aload 2
aload 3
invokevirtual org.joni.Analyser.optimizeNodeLeft:(Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
181: aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
ldc 49152
invokevirtual org.joni.OptAnchorInfo.isSet:(I)Z
ifeq 190
182: aload 3
getfield org.joni.OptEnvironment.scanEnv:Lorg/joni/ScanEnvironment;
getfield org.joni.ScanEnvironment.backrefedMem:I
aload 4
getfield org.joni.ast.EncloseNode.regNum:I
invokestatic org.joni.BitStatus.bsAt:(II)Z
ifeq 190
183: aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
ldc 49152
invokevirtual org.joni.OptAnchorInfo.remove:(I)V
184: goto 190
185: StackMap locals:
StackMap stack:
aload 0
aload 4
getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
aload 2
aload 3
invokevirtual org.joni.Analyser.optimizeNodeLeft:(Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
186: goto 190
187: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
iconst_0
ldc 2147483647
invokevirtual org.joni.MinMaxLen.set:(II)V
188: StackMap locals:
StackMap stack:
goto 190
end local 4 189: StackMap locals:
StackMap stack:
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.Analyser.newInternalException:(Ljava/lang/String;)V
190: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 191 0 this Lorg/joni/Analyser;
0 191 1 node Lorg/joni/ast/Node;
0 191 2 opt Lorg/joni/NodeOptInfo;
0 191 3 oenv Lorg/joni/OptEnvironment;
4 12 4 nenv Lorg/joni/OptEnvironment;
5 12 5 nopt Lorg/joni/NodeOptInfo;
7 12 6 lin Lorg/joni/ast/ListNode;
13 21 4 nopt Lorg/joni/NodeOptInfo;
14 21 5 aln Lorg/joni/ast/ListNode;
22 43 4 sn Lorg/joni/ast/StringNode;
23 43 5 slen I
33 34 6 max I
39 40 6 max I
32 33 7 n I
44 59 4 cc Lorg/joni/ast/CClassNode;
46 48 5 min I
47 48 6 max I
50 57 5 i I
52 55 6 z Z
62 82 4 min I
83 85 4 min I
60 85 5 max I
63 81 6 cn Lorg/joni/ast/CTypeNode;
66 81 7 maxCode I
69 74 8 i I
76 81 8 i I
88 102 4 an Lorg/joni/ast/AnchorNode;
92 101 5 nopt Lorg/joni/NodeOptInfo;
103 123 4 br Lorg/joni/ast/BackRefNode;
107 123 5 nodes [Lorg/joni/ast/Node;
108 123 6 min I
109 123 7 max I
113 121 8 i I
116 119 9 tmin I
117 119 10 tmax I
124 131 4 cn Lorg/joni/ast/CallNode;
128 131 5 safe I
133 166 4 nopt Lorg/joni/NodeOptInfo;
134 166 5 qn Lorg/joni/ast/QuantifierNode;
146 152 6 i I
158 166 6 min I
162 163 7 max I
164 166 7 max I
167 189 4 en Lorg/joni/ast/EncloseNode;
169 173 5 save I
175 179 6 min I
176 179 7 max I
MethodParameters:
Name Flags
node
opt
oenv
protected final void setOptimizedInfoFromTree(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: new org.joni.NodeOptInfo
dup
invokespecial org.joni.NodeOptInfo.<init>:()V
astore 2
start local 2 1: new org.joni.OptEnvironment
dup
invokespecial org.joni.OptEnvironment.<init>:()V
astore 3
start local 3 2: aload 3
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.enc:Lorg/jcodings/Encoding;
putfield org.joni.OptEnvironment.enc:Lorg/jcodings/Encoding;
3: aload 3
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.options:I
putfield org.joni.OptEnvironment.options:I
4: aload 3
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.caseFoldFlag:I
putfield org.joni.OptEnvironment.caseFoldFlag:I
5: aload 3
aload 0
getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
putfield org.joni.OptEnvironment.scanEnv:Lorg/joni/ScanEnvironment;
6: aload 3
getfield org.joni.OptEnvironment.mmd:Lorg/joni/MinMaxLen;
invokevirtual org.joni.MinMaxLen.clear:()V
7: aload 0
aload 1
aload 2
aload 3
invokevirtual org.joni.Analyser.optimizeNodeLeft:(Lorg/joni/ast/Node;Lorg/joni/NodeOptInfo;Lorg/joni/OptEnvironment;)V
8: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
getfield org.joni.OptAnchorInfo.leftAnchor:I
ldc 53253
iand
putfield org.joni.Regex.anchor:I
9: aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
getfield org.joni.OptAnchorInfo.leftAnchor:I
sipush 6144
iand
ifeq 10
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
dup
getfield org.joni.Regex.anchor:I
ldc -32769
iand
putfield org.joni.Regex.anchor:I
10: StackMap locals: org.joni.NodeOptInfo org.joni.OptEnvironment
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
dup
getfield org.joni.Regex.anchor:I
aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
getfield org.joni.OptAnchorInfo.rightAnchor:I
sipush 2072
iand
ior
putfield org.joni.Regex.anchor:I
11: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
getfield org.joni.Regex.anchor:I
bipush 24
iand
ifeq 14
12: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
getfield org.joni.MinMaxLen.min:I
putfield org.joni.Regex.anchorDmin:I
13: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
getfield org.joni.MinMaxLen.max:I
putfield org.joni.Regex.anchorDmax:I
14: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
getfield org.joni.OptExactInfo.length:I
ifgt 15
aload 2
getfield org.joni.NodeOptInfo.exm:Lorg/joni/OptExactInfo;
getfield org.joni.OptExactInfo.length:I
ifle 23
15: StackMap locals:
StackMap stack:
aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
aload 2
getfield org.joni.NodeOptInfo.exm:Lorg/joni/OptExactInfo;
aload 0
getfield org.joni.Analyser.enc:Lorg/jcodings/Encoding;
invokevirtual org.joni.OptExactInfo.select:(Lorg/joni/OptExactInfo;Lorg/jcodings/Encoding;)V
16: aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
getfield org.joni.OptMapInfo.value:I
ifle 20
aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
invokevirtual org.joni.OptExactInfo.compare:(Lorg/joni/OptMapInfo;)I
ifle 20
17: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
invokevirtual org.joni.Regex.setOptimizeMapInfo:(Lorg/joni/OptMapInfo;)V
18: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
getfield org.joni.OptMapInfo.anchor:Lorg/joni/OptAnchorInfo;
invokevirtual org.joni.Regex.setSubAnchor:(Lorg/joni/OptAnchorInfo;)V
19: goto 29
20: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
invokevirtual org.joni.Regex.setOptimizeExactInfo:(Lorg/joni/OptExactInfo;)V
21: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
getfield org.joni.NodeOptInfo.exb:Lorg/joni/OptExactInfo;
getfield org.joni.OptExactInfo.anchor:Lorg/joni/OptAnchorInfo;
invokevirtual org.joni.Regex.setSubAnchor:(Lorg/joni/OptAnchorInfo;)V
22: goto 29
StackMap locals:
StackMap stack:
23: aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
getfield org.joni.OptMapInfo.value:I
ifle 27
24: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
invokevirtual org.joni.Regex.setOptimizeMapInfo:(Lorg/joni/OptMapInfo;)V
25: aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
aload 2
getfield org.joni.NodeOptInfo.map:Lorg/joni/OptMapInfo;
getfield org.joni.OptMapInfo.anchor:Lorg/joni/OptAnchorInfo;
invokevirtual org.joni.Regex.setSubAnchor:(Lorg/joni/OptAnchorInfo;)V
26: goto 29
27: StackMap locals:
StackMap stack:
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
dup
getfield org.joni.Regex.subAnchor:I
aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
getfield org.joni.OptAnchorInfo.leftAnchor:I
iconst_2
iand
ior
putfield org.joni.Regex.subAnchor:I
28: aload 2
getfield org.joni.NodeOptInfo.length:Lorg/joni/MinMaxLen;
getfield org.joni.MinMaxLen.max:I
ifne 29
aload 0
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
dup
getfield org.joni.Regex.subAnchor:I
aload 2
getfield org.joni.NodeOptInfo.anchor:Lorg/joni/OptAnchorInfo;
getfield org.joni.OptAnchorInfo.rightAnchor:I
bipush 32
iand
ior
putfield org.joni.Regex.subAnchor:I
29: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/joni/Analyser;
0 30 1 node Lorg/joni/ast/Node;
1 30 2 opt Lorg/joni/NodeOptInfo;
2 30 3 oenv Lorg/joni/OptEnvironment;
MethodParameters:
Name Flags
node
}
SourceFile: "Analyser.java"
InnerClasses:
public final TopNode = org.joni.ast.Node$TopNode of org.joni.ast.Node