abstract class org.joni.Compiler implements org.joni.exception.ErrorMessages
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: org.joni.Compiler
super_class: java.lang.Object
{
protected final org.joni.Analyser analyser;
descriptor: Lorg/joni/Analyser;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.jcodings.Encoding enc;
descriptor: Lorg/jcodings/Encoding;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.joni.Regex regex;
descriptor: Lorg/joni/Regex;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected void <init>(org.joni.Analyser);
descriptor: (Lorg/joni/Analyser;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.joni.Compiler.analyser:Lorg/joni/Analyser;
2: aload 0
aload 1
getfield org.joni.Analyser.regex:Lorg/joni/Regex;
putfield org.joni.Compiler.regex:Lorg/joni/Regex;
3: aload 0
aload 0
getfield org.joni.Compiler.regex:Lorg/joni/Regex;
getfield org.joni.Regex.enc:Lorg/jcodings/Encoding;
putfield org.joni.Compiler.enc:Lorg/jcodings/Encoding;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/joni/Compiler;
0 5 1 analyser Lorg/joni/Analyser;
MethodParameters:
Name Flags
analyser
final void compile(org.joni.ast.Node);
descriptor: (Lorg/joni/ast/Node;)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.joni.Compiler.prepare:()V
1: aload 0
aload 1
invokevirtual org.joni.Compiler.compileTree:(Lorg/joni/ast/Node;)V
2: aload 0
invokevirtual org.joni.Compiler.finish:()V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/joni/Compiler;
0 4 1 root Lorg/joni/ast/Node;
MethodParameters:
Name Flags
root
protected abstract void prepare();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract void finish();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract void compileAltNode(org.joni.ast.ListNode);
descriptor: (Lorg/joni/ast/ListNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
private void compileStringRawNode(org.joni.ast.StringNode);
descriptor: (Lorg/joni/ast/StringNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.joni.ast.StringNode.length:()I
ifgt 1
return
1: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.joni.ast.StringNode.bytes:[B
aload 1
getfield org.joni.ast.StringNode.p:I
iconst_1
aload 1
invokevirtual org.joni.ast.StringNode.length:()I
iconst_0
invokevirtual org.joni.Compiler.addCompileString:([BIIIZ)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/joni/Compiler;
0 3 1 sn Lorg/joni/ast/StringNode;
MethodParameters:
Name Flags
sn
private void compileStringNode(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
astore 2
start local 2 1: aload 2
invokevirtual org.joni.ast.StringNode.length:()I
ifgt 2
return
2: StackMap locals: org.joni.ast.StringNode
StackMap stack:
aload 2
invokevirtual org.joni.ast.StringNode.isAmbig:()Z
istore 3
start local 3 3: aload 2
getfield org.joni.ast.StringNode.p:I
dup
istore 5
start local 5 4: istore 4
start local 4 5: aload 2
getfield org.joni.ast.StringNode.end:I
istore 6
start local 6 6: aload 2
getfield org.joni.ast.StringNode.bytes:[B
astore 7
start local 7 7: aload 0
getfield org.joni.Compiler.enc:Lorg/jcodings/Encoding;
aload 7
iload 4
iload 6
invokevirtual org.jcodings.Encoding.length:([BII)I
istore 8
start local 8 8: iload 4
iload 8
iadd
istore 4
9: iload 8
istore 9
start local 9 10: goto 20
11: StackMap locals: org.joni.Compiler org.joni.ast.StringNode org.joni.ast.StringNode int int int int byte[] int int
StackMap stack:
aload 0
getfield org.joni.Compiler.enc:Lorg/jcodings/Encoding;
aload 7
iload 4
iload 6
invokevirtual org.jcodings.Encoding.length:([BII)I
istore 10
start local 10 12: iload 10
iload 8
if_icmpeq 13
iload 3
ifeq 15
13: StackMap locals: int
StackMap stack:
iload 9
iload 10
iadd
istore 9
14: goto 19
15: StackMap locals:
StackMap stack:
aload 0
aload 7
iload 5
iload 8
iload 9
iload 3
invokevirtual org.joni.Compiler.addCompileString:([BIIIZ)V
16: iload 4
istore 5
17: iload 10
istore 9
18: iload 10
istore 8
19: StackMap locals:
StackMap stack:
iload 4
iload 10
iadd
istore 4
end local 10 20: StackMap locals:
StackMap stack:
iload 4
iload 6
if_icmplt 11
21: aload 0
aload 7
iload 5
iload 8
iload 9
iload 3
invokevirtual org.joni.Compiler.addCompileString:([BIIIZ)V
22: return
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 23 0 this Lorg/joni/Compiler;
0 23 1 node Lorg/joni/ast/StringNode;
1 23 2 sn Lorg/joni/ast/StringNode;
3 23 3 ambig Z
5 23 4 p I
4 23 5 prev I
6 23 6 end I
7 23 7 bytes [B
8 23 8 prevLen I
10 23 9 blen I
12 20 10 len I
MethodParameters:
Name Flags
node
protected abstract void addCompileString(byte[], int, int, int, boolean);
descriptor: ([BIIIZ)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
bytes
p
mbLength
strLength
ignoreCase
protected abstract void compileCClassNode(org.joni.ast.CClassNode);
descriptor: (Lorg/joni/ast/CClassNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
protected abstract void compileCTypeNode(org.joni.ast.CTypeNode);
descriptor: (Lorg/joni/ast/CTypeNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
protected abstract void compileAnyCharNode();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract void compileCallNode(org.joni.ast.CallNode);
descriptor: (Lorg/joni/ast/CallNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
protected abstract void compileBackrefNode(org.joni.ast.BackRefNode);
descriptor: (Lorg/joni/ast/BackRefNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
protected abstract void compileCECQuantifierNode(org.joni.ast.QuantifierNode);
descriptor: (Lorg/joni/ast/QuantifierNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
protected abstract void compileNonCECQuantifierNode(org.joni.ast.QuantifierNode);
descriptor: (Lorg/joni/ast/QuantifierNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
protected abstract void compileOptionNode(org.joni.ast.EncloseNode);
descriptor: (Lorg/joni/ast/EncloseNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
protected abstract void compileEncloseNode(org.joni.ast.EncloseNode);
descriptor: (Lorg/joni/ast/EncloseNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
protected abstract void compileAnchorNode(org.joni.ast.AnchorNode);
descriptor: (Lorg/joni/ast/AnchorNode;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
node
protected final void compileTree(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 { // 0 - 10
0: 7
1: 13
2: 15
3: 17
4: 19
5: 23
6: 25
7: 31
8: 1
9: 5
10: 21
default: 33
}
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.Compiler.compileTree:(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 34
end local 2 5: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.ListNode
invokevirtual org.joni.Compiler.compileAltNode:(Lorg/joni/ast/ListNode;)V
6: goto 34
7: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.StringNode
astore 3
start local 3 8: aload 3
invokevirtual org.joni.ast.StringNode.isRaw:()Z
ifeq 11
9: aload 0
aload 3
invokevirtual org.joni.Compiler.compileStringRawNode:(Lorg/joni/ast/StringNode;)V
10: goto 34
11: StackMap locals: org.joni.Compiler org.joni.ast.Node top org.joni.ast.StringNode
StackMap stack:
aload 0
aload 3
invokevirtual org.joni.Compiler.compileStringNode:(Lorg/joni/ast/StringNode;)V
12: goto 34
end local 3 13: StackMap locals: org.joni.Compiler org.joni.ast.Node
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.CClassNode
invokevirtual org.joni.Compiler.compileCClassNode:(Lorg/joni/ast/CClassNode;)V
14: goto 34
15: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.CTypeNode
invokevirtual org.joni.Compiler.compileCTypeNode:(Lorg/joni/ast/CTypeNode;)V
16: goto 34
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.joni.Compiler.compileAnyCharNode:()V
18: goto 34
19: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.BackRefNode
invokevirtual org.joni.Compiler.compileBackrefNode:(Lorg/joni/ast/BackRefNode;)V
20: goto 34
21: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.CallNode
invokevirtual org.joni.Compiler.compileCallNode:(Lorg/joni/ast/CallNode;)V
22: goto 34
23: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.QuantifierNode
invokevirtual org.joni.Compiler.compileNonCECQuantifierNode:(Lorg/joni/ast/QuantifierNode;)V
24: goto 34
25: StackMap locals:
StackMap stack:
aload 1
checkcast org.joni.ast.EncloseNode
astore 4
start local 4 26: aload 4
invokevirtual org.joni.ast.EncloseNode.isOption:()Z
ifeq 29
27: aload 0
aload 4
invokevirtual org.joni.Compiler.compileOptionNode:(Lorg/joni/ast/EncloseNode;)V
28: goto 34
29: StackMap locals: org.joni.Compiler org.joni.ast.Node top top org.joni.ast.EncloseNode
StackMap stack:
aload 0
aload 4
invokevirtual org.joni.Compiler.compileEncloseNode:(Lorg/joni/ast/EncloseNode;)V
30: goto 34
end local 4 31: StackMap locals: org.joni.Compiler org.joni.ast.Node
StackMap stack:
aload 0
aload 1
checkcast org.joni.ast.AnchorNode
invokevirtual org.joni.Compiler.compileAnchorNode:(Lorg/joni/ast/AnchorNode;)V
32: goto 34
33: StackMap locals:
StackMap stack:
aload 0
ldc "internal parser error (bug)"
invokevirtual org.joni.Compiler.newInternalException:(Ljava/lang/String;)V
34: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/joni/Compiler;
0 35 1 node Lorg/joni/ast/Node;
2 5 2 lin Lorg/joni/ast/ListNode;
8 13 3 sn Lorg/joni/ast/StringNode;
26 31 4 enode Lorg/joni/ast/EncloseNode;
MethodParameters:
Name Flags
node
protected final void compileTreeNTimes(org.joni.ast.Node, int);
descriptor: (Lorg/joni/ast/Node;I)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 3
StackMap locals: int
StackMap stack:
2: aload 0
aload 1
invokevirtual org.joni.Compiler.compileTree:(Lorg/joni/ast/Node;)V
iinc 3 1
StackMap locals:
StackMap stack:
3: iload 3
iload 2
if_icmplt 2
end local 3 4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/joni/Compiler;
0 5 1 node Lorg/joni/ast/Node;
0 5 2 n I
1 4 3 i I
MethodParameters:
Name Flags
node
n
protected void newSyntaxException(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new org.joni.exception.SyntaxException
dup
aload 1
invokespecial org.joni.exception.SyntaxException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/joni/Compiler;
0 1 1 message Ljava/lang/String;
MethodParameters:
Name Flags
message
protected void newInternalException(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new org.joni.exception.InternalException
dup
aload 1
invokespecial org.joni.exception.InternalException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/joni/Compiler;
0 1 1 message Ljava/lang/String;
MethodParameters:
Name Flags
message
}
SourceFile: "Compiler.java"