final class org.joni.ArrayCompiler extends org.joni.Compiler
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.joni.ArrayCompiler
  super_class: org.joni.Compiler
{
  private int[] code;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int codeLength;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private byte[][] templates;
    descriptor: [[B
    flags: (0x0002) ACC_PRIVATE

  private int templateNum;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private static final int REPEAT_RANGE_ALLOC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int QUANTIFIER_EXPAND_LIMIT_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 50

  void <init>(org.joni.Analyser);
    descriptor: (Lorg/joni/Analyser;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.Analyser analyser
         0: .line 54
            aload 0 /* this */
            aload 1 /* analyser */
            invokespecial org.joni.Compiler.<init>:(Lorg/joni/Analyser;)V
         1: .line 55
            return
        end local 1 // org.joni.Analyser analyser
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/joni/ArrayCompiler;
            0    2     1  analyser  Lorg/joni/Analyser;
    MethodParameters:
          Name  Flags
      analyser  

  protected final void prepare();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.joni.ArrayCompiler this
         0: .line 59
            bipush 8
            istore 1 /* codeSize */
        start local 1 // int codeSize
         1: .line 60
            aload 0 /* this */
            iload 1 /* codeSize */
            newarray 10
            putfield org.joni.ArrayCompiler.code:[I
         2: .line 61
            aload 0 /* this */
            iconst_0
            putfield org.joni.ArrayCompiler.codeLength:I
         3: .line 62
            return
        end local 1 // int codeSize
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/joni/ArrayCompiler;
            1    4     1  codeSize  I

  protected final void finish();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joni.ArrayCompiler this
         0: .line 66
            aload 0 /* this */
            iconst_1
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         1: .line 67
            aload 0 /* this */
            iconst_0
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         2: .line 69
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            putfield org.joni.Regex.code:[I
         3: .line 70
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.codeLength:I
            putfield org.joni.Regex.codeLength:I
         4: .line 71
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.templates:[[B
            putfield org.joni.Regex.templates:[[B
         5: .line 72
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.templateNum:I
            putfield org.joni.Regex.templateNum:I
         6: .line 73
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getstatic org.joni.MatcherFactory.DEFAULT:Lorg/joni/MatcherFactory;
            putfield org.joni.Regex.factory:Lorg/joni/MatcherFactory;
         7: .line 75
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
            getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
            getfield org.joni.ScanEnvironment.unsetAddrList:Lorg/joni/UnsetAddrList;
            ifnull 10
         8: .line 76
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
            getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
            getfield org.joni.ScanEnvironment.unsetAddrList:Lorg/joni/UnsetAddrList;
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            invokevirtual org.joni.UnsetAddrList.fix:(Lorg/joni/Regex;)V
         9: .line 77
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
            getfield org.joni.Analyser.env:Lorg/joni/ScanEnvironment;
            aconst_null
            putfield org.joni.ScanEnvironment.unsetAddrList:Lorg/joni/UnsetAddrList;
        10: .line 79
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/joni/ArrayCompiler;

  protected void compileAltNode(org.joni.ast.ListNode);
    descriptor: (Lorg/joni/ast/ListNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.ListNode node
         0: .line 83
            aload 1 /* node */
            astore 2 /* aln */
        start local 2 // org.joni.ast.ListNode aln
         1: .line 84
            iconst_0
            istore 3 /* len */
        start local 3 // int len
         2: .line 87
      StackMap locals: org.joni.ast.ListNode int
      StackMap stack:
            iload 3 /* len */
            aload 0 /* this */
            aload 2 /* aln */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            iadd
            istore 3 /* len */
         3: .line 88
            aload 2 /* aln */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            ifnull 5
         4: .line 89
            iinc 3 /* len */ 4
         5: .line 91
      StackMap locals:
      StackMap stack:
            aload 2 /* aln */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            dup
            astore 2 /* aln */
            ifnonnull 2
         6: .line 93
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.codeLength:I
            iload 3 /* len */
            iadd
            istore 4 /* pos */
        start local 4 // int pos
         7: .line 95
            aload 1 /* node */
            astore 2 /* aln */
         8: .line 97
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* aln */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 3 /* len */
         9: .line 98
            aload 2 /* aln */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            ifnull 12
        10: .line 99
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
        11: .line 100
            aload 0 /* this */
            bipush 62
            iload 3 /* len */
            iconst_2
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        12: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* aln */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        13: .line 103
            aload 2 /* aln */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            ifnull 16
        14: .line 104
            iload 4 /* pos */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.codeLength:I
            iconst_2
            iadd
            isub
            istore 3 /* len */
        15: .line 105
            aload 0 /* this */
            bipush 61
            iload 3 /* len */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        16: .line 107
      StackMap locals:
      StackMap stack:
            aload 2 /* aln */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            dup
            astore 2 /* aln */
            ifnonnull 8
        17: .line 108
            return
        end local 4 // int pos
        end local 3 // int len
        end local 2 // org.joni.ast.ListNode aln
        end local 1 // org.joni.ast.ListNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lorg/joni/ArrayCompiler;
            0   18     1  node  Lorg/joni/ast/ListNode;
            1   18     2   aln  Lorg/joni/ast/ListNode;
            2   18     3   len  I
            7   18     4   pos  I
    MethodParameters:
      Name  Flags
      node  

  private boolean isNeedStrLenOpExact(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int op
         0: .line 111
            iload 1 /* op */
            bipush 7
            if_icmpeq 7
         1: .line 112
            iload 1 /* op */
            bipush 11
            if_icmpeq 7
         2: .line 113
            iload 1 /* op */
            bipush 12
            if_icmpeq 7
         3: .line 114
            iload 1 /* op */
            bipush 13
            if_icmpeq 7
         4: .line 115
            iload 1 /* op */
            bipush 15
            if_icmpeq 7
         5: .line 116
            iload 1 /* op */
            bipush 99
            if_icmpeq 7
         6: .line 111
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_1
            ireturn
        end local 1 // int op
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/joni/ArrayCompiler;
            0    8     1    op  I
    MethodParameters:
      Name  Flags
      op    

  private boolean opTemplated(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int op
         0: .line 120
            aload 0 /* this */
            iload 1 /* op */
            invokevirtual org.joni.ArrayCompiler.isNeedStrLenOpExact:(I)Z
            ireturn
        end local 1 // int op
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/ArrayCompiler;
            0    1     1    op  I
    MethodParameters:
      Name  Flags
      op    

  private int selectStrOpcode(int, int, boolean);
    descriptor: (IIZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int mbLength
        start local 2 // int byteLength
        start local 3 // boolean ignoreCase
         0: .line 125
            iload 2 /* byteLength */
            iload 1 /* mbLength */
            iadd
            iconst_1
            isub
            iload 1 /* mbLength */
            idiv
            istore 5 /* strLength */
        start local 5 // int strLength
         1: .line 127
            iload 3 /* ignoreCase */
            ifeq 11
         2: .line 128
            iload 5 /* strLength */
            tableswitch { // 1 - 1
                    1: 3
              default: 7
          }
         3: .line 129
      StackMap locals: org.joni.ArrayCompiler int int int top int
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.toLowerCaseTable:()[B
            ifnull 4
            bipush 98
            goto 5
      StackMap locals:
      StackMap stack:
         4: bipush 14
      StackMap locals:
      StackMap stack: int
         5: istore 4 /* op */
        start local 4 // int op
         6: goto 37
        end local 4 // int op
         7: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.toLowerCaseTable:()[B
            ifnull 8
            bipush 99
            goto 9
      StackMap locals:
      StackMap stack:
         8: bipush 15
      StackMap locals:
      StackMap stack: int
         9: istore 4 /* op */
        start local 4 // int op
        10: .line 132
            goto 37
        end local 4 // int op
        11: .line 133
      StackMap locals:
      StackMap stack:
            iload 1 /* mbLength */
            tableswitch { // 1 - 3
                    1: 12
                    2: 25
                    3: 34
              default: 36
          }
        12: .line 135
      StackMap locals:
      StackMap stack:
            iload 5 /* strLength */
            tableswitch { // 1 - 5
                    1: 13
                    2: 15
                    3: 17
                    4: 19
                    5: 21
              default: 23
          }
        13: .line 136
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 4 /* op */
        start local 4 // int op
        14: goto 37
        end local 4 // int op
        15: .line 137
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 4 /* op */
        start local 4 // int op
        16: goto 37
        end local 4 // int op
        17: .line 138
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 4 /* op */
        start local 4 // int op
        18: goto 37
        end local 4 // int op
        19: .line 139
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 4 /* op */
        start local 4 // int op
        20: goto 37
        end local 4 // int op
        21: .line 140
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 4 /* op */
        start local 4 // int op
        22: goto 37
        end local 4 // int op
        23: .line 141
      StackMap locals:
      StackMap stack:
            bipush 7
            istore 4 /* op */
        start local 4 // int op
        24: .line 143
            goto 37
        end local 4 // int op
        25: .line 145
      StackMap locals:
      StackMap stack:
            iload 5 /* strLength */
            tableswitch { // 1 - 3
                    1: 26
                    2: 28
                    3: 30
              default: 32
          }
        26: .line 146
      StackMap locals:
      StackMap stack:
            bipush 8
            istore 4 /* op */
        start local 4 // int op
        27: goto 37
        end local 4 // int op
        28: .line 147
      StackMap locals:
      StackMap stack:
            bipush 9
            istore 4 /* op */
        start local 4 // int op
        29: goto 37
        end local 4 // int op
        30: .line 148
      StackMap locals:
      StackMap stack:
            bipush 10
            istore 4 /* op */
        start local 4 // int op
        31: goto 37
        end local 4 // int op
        32: .line 149
      StackMap locals:
      StackMap stack:
            bipush 11
            istore 4 /* op */
        start local 4 // int op
        33: .line 151
            goto 37
        end local 4 // int op
        34: .line 153
      StackMap locals:
      StackMap stack:
            bipush 12
            istore 4 /* op */
        start local 4 // int op
        35: .line 154
            goto 37
        end local 4 // int op
        36: .line 156
      StackMap locals:
      StackMap stack:
            bipush 13
            istore 4 /* op */
        start local 4 // int op
        37: .line 159
      StackMap locals: org.joni.ArrayCompiler int int int int int
      StackMap stack:
            iload 4 /* op */
            ireturn
        end local 5 // int strLength
        end local 4 // int op
        end local 3 // boolean ignoreCase
        end local 2 // int byteLength
        end local 1 // int mbLength
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   38     0        this  Lorg/joni/ArrayCompiler;
            0   38     1    mbLength  I
            0   38     2  byteLength  I
            0   38     3  ignoreCase  Z
            6    7     4          op  I
           10   11     4          op  I
           14   15     4          op  I
           16   17     4          op  I
           18   19     4          op  I
           20   21     4          op  I
           22   23     4          op  I
           24   25     4          op  I
           27   28     4          op  I
           29   30     4          op  I
           31   32     4          op  I
           33   34     4          op  I
           35   36     4          op  I
           37   38     4          op  I
            1   38     5   strLength  I
    MethodParameters:
            Name  Flags
      mbLength    
      byteLength  
      ignoreCase  

  private void compileTreeEmptyCheck(org.joni.ast.Node, int);
    descriptor: (Lorg/joni/ast/Node;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.Node node
        start local 2 // int emptyInfo
         0: .line 163
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.numNullCheck:I
            istore 3 /* savedNumNullCheck */
        start local 3 // int savedNumNullCheck
         1: .line 165
            iload 2 /* emptyInfo */
            ifeq 6
         2: .line 166
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
         3: .line 167
            aload 0 /* this */
            bipush 72
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         4: .line 168
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.numNullCheck:I
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
         5: .line 169
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            dup
            getfield org.joni.Regex.numNullCheck:I
            iconst_1
            iadd
            putfield org.joni.Regex.numNullCheck:I
         6: .line 172
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
         7: .line 174
            iload 2 /* emptyInfo */
            ifeq 15
         8: .line 175
            iload 2 /* emptyInfo */
            tableswitch { // 1 - 3
                    1: 9
                    2: 11
                    3: 13
              default: 14
          }
         9: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 73
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        10: .line 178
            goto 14
        11: .line 180
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 74
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        12: .line 181
            goto 14
        13: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 75
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        14: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* savedNumNullCheck */
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
        15: .line 189
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int savedNumNullCheck
        end local 2 // int emptyInfo
        end local 1 // org.joni.ast.Node node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lorg/joni/ArrayCompiler;
            0   16     1               node  Lorg/joni/ast/Node;
            0   16     2          emptyInfo  I
            1   16     3  savedNumNullCheck  I
    MethodParameters:
           Name  Flags
      node       
      emptyInfo  

  private int addCompileStringlength(byte[], int, int, int, boolean);
    descriptor: ([BIIIZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=6
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int mbLength
        start local 4 // int byteLength
        start local 5 // boolean ignoreCase
         0: .line 192
            aload 0 /* this */
            iload 3 /* mbLength */
            iload 4 /* byteLength */
            iload 5 /* ignoreCase */
            invokevirtual org.joni.ArrayCompiler.selectStrOpcode:(IIZ)I
            istore 6 /* op */
        start local 6 // int op
         1: .line 193
            iconst_1
            istore 7 /* len */
        start local 7 // int len
         2: .line 195
            aload 0 /* this */
            iload 6 /* op */
            invokevirtual org.joni.ArrayCompiler.opTemplated:(I)Z
            ifeq 5
         3: .line 197
            iinc 7 /* len */ 3
         4: .line 198
            goto 7
         5: .line 199
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* op */
            invokevirtual org.joni.ArrayCompiler.isNeedStrLenOpExact:(I)Z
            ifeq 6
            iinc 7 /* len */ 1
         6: .line 200
      StackMap locals:
      StackMap stack:
            iload 7 /* len */
            iload 4 /* byteLength */
            iadd
            istore 7 /* len */
         7: .line 202
      StackMap locals:
      StackMap stack:
            iload 6 /* op */
            bipush 13
            if_icmpne 8
            iinc 7 /* len */ 1
         8: .line 203
      StackMap locals:
      StackMap stack:
            iload 7 /* len */
            ireturn
        end local 7 // int len
        end local 6 // int op
        end local 5 // boolean ignoreCase
        end local 4 // int byteLength
        end local 3 // int mbLength
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/joni/ArrayCompiler;
            0    9     1       bytes  [B
            0    9     2           p  I
            0    9     3    mbLength  I
            0    9     4  byteLength  I
            0    9     5  ignoreCase  Z
            1    9     6          op  I
            2    9     7         len  I
    MethodParameters:
            Name  Flags
      bytes       
      p           
      mbLength    
      byteLength  
      ignoreCase  

  protected final void addCompileString(byte[], int, int, int, boolean);
    descriptor: ([BIIIZ)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=7, args_size=6
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int mbLength
        start local 4 // int byteLength
        start local 5 // boolean ignoreCase
         0: .line 208
            aload 0 /* this */
            iload 3 /* mbLength */
            iload 4 /* byteLength */
            iload 5 /* ignoreCase */
            invokevirtual org.joni.ArrayCompiler.selectStrOpcode:(IIZ)I
            istore 6 /* op */
        start local 6 // int op
         1: .line 209
            aload 0 /* this */
            iload 6 /* op */
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         2: .line 211
            iload 6 /* op */
            bipush 13
            if_icmpne 3
            aload 0 /* this */
            iload 3 /* mbLength */
            invokevirtual org.joni.ArrayCompiler.addLength:(I)V
         3: .line 213
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* op */
            invokevirtual org.joni.ArrayCompiler.isNeedStrLenOpExact:(I)Z
            ifeq 8
         4: .line 214
            iload 6 /* op */
            bipush 15
            if_icmpeq 5
            iload 6 /* op */
            bipush 99
            if_icmpne 7
         5: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* byteLength */
            invokevirtual org.joni.ArrayCompiler.addLength:(I)V
         6: .line 216
            goto 8
         7: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* byteLength */
            iload 3 /* mbLength */
            idiv
            invokevirtual org.joni.ArrayCompiler.addLength:(I)V
         8: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* op */
            invokevirtual org.joni.ArrayCompiler.opTemplated:(I)Z
            ifeq 13
         9: .line 222
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.templateNum:I
            invokevirtual org.joni.ArrayCompiler.addInt:(I)V
        10: .line 223
            aload 0 /* this */
            iload 2 /* p */
            invokevirtual org.joni.ArrayCompiler.addInt:(I)V
        11: .line 224
            aload 0 /* this */
            aload 1 /* bytes */
            invokevirtual org.joni.ArrayCompiler.addTemplate:([B)V
        12: .line 225
            goto 14
        13: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bytes */
            iload 2 /* p */
            iload 4 /* byteLength */
            invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
        14: .line 228
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int op
        end local 5 // boolean ignoreCase
        end local 4 // int byteLength
        end local 3 // int mbLength
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/joni/ArrayCompiler;
            0   15     1       bytes  [B
            0   15     2           p  I
            0   15     3    mbLength  I
            0   15     4  byteLength  I
            0   15     5  ignoreCase  Z
            1   15     6          op  I
    MethodParameters:
            Name  Flags
      bytes       
      p           
      mbLength    
      byteLength  
      ignoreCase  

  private int compileLengthStringNode(org.joni.ast.Node);
    descriptor: (Lorg/joni/ast/Node;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.Node node
         0: .line 231
            aload 1 /* node */
            checkcast org.joni.ast.StringNode
            astore 2 /* sn */
        start local 2 // org.joni.ast.StringNode sn
         1: .line 232
            aload 2 /* sn */
            invokevirtual org.joni.ast.StringNode.length:()I
            ifgt 2
            iconst_0
            ireturn
         2: .line 233
      StackMap locals: org.joni.ast.StringNode
      StackMap stack:
            aload 2 /* sn */
            invokevirtual org.joni.ast.StringNode.isAmbig:()Z
            istore 3 /* ambig */
        start local 3 // boolean ambig
         3: .line 236
            aload 2 /* sn */
            getfield org.joni.ast.StringNode.p:I
            dup
            istore 5 /* prev */
        start local 5 // int prev
         4: istore 4 /* p */
        start local 4 // int p
         5: .line 237
            aload 2 /* sn */
            getfield org.joni.ast.StringNode.end:I
            istore 6 /* end */
        start local 6 // int end
         6: .line 238
            aload 2 /* sn */
            getfield org.joni.ast.StringNode.bytes:[B
            astore 7 /* bytes */
        start local 7 // byte[] bytes
         7: .line 239
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
            aload 7 /* bytes */
            iload 4 /* p */
            iload 6 /* end */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            istore 8 /* prevLen */
        start local 8 // int prevLen
         8: .line 240
            iload 4 /* p */
            iload 8 /* prevLen */
            iadd
            istore 4 /* p */
         9: .line 241
            iload 8 /* prevLen */
            istore 9 /* blen */
        start local 9 // int blen
        10: .line 242
            iconst_0
            istore 10 /* rlen */
        start local 10 // int rlen
        11: .line 244
            goto 22
        12: .line 245
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node org.joni.ast.StringNode int int int int byte[] int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
            aload 7 /* bytes */
            iload 4 /* p */
            iload 6 /* end */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            istore 11 /* len */
        start local 11 // int len
        13: .line 246
            iload 11 /* len */
            iload 8 /* prevLen */
            if_icmpeq 14
            iload 3 /* ambig */
            ifeq 16
        14: .line 247
      StackMap locals: int
      StackMap stack:
            iload 9 /* blen */
            iload 11 /* len */
            iadd
            istore 9 /* blen */
        15: .line 248
            goto 21
        16: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* bytes */
            iload 5 /* prev */
            iload 8 /* prevLen */
            iload 9 /* blen */
            iload 3 /* ambig */
            invokevirtual org.joni.ArrayCompiler.addCompileStringlength:([BIIIZ)I
            istore 12 /* r */
        start local 12 // int r
        17: .line 250
            iload 10 /* rlen */
            iload 12 /* r */
            iadd
            istore 10 /* rlen */
        18: .line 251
            iload 4 /* p */
            istore 5 /* prev */
        19: .line 252
            iload 11 /* len */
            istore 9 /* blen */
        20: .line 253
            iload 11 /* len */
            istore 8 /* prevLen */
        end local 12 // int r
        21: .line 255
      StackMap locals:
      StackMap stack:
            iload 4 /* p */
            iload 11 /* len */
            iadd
            istore 4 /* p */
        end local 11 // int len
        22: .line 244
      StackMap locals:
      StackMap stack:
            iload 4 /* p */
            iload 6 /* end */
            if_icmplt 12
        23: .line 257
            aload 0 /* this */
            aload 7 /* bytes */
            iload 5 /* prev */
            iload 8 /* prevLen */
            iload 9 /* blen */
            iload 3 /* ambig */
            invokevirtual org.joni.ArrayCompiler.addCompileStringlength:([BIIIZ)I
            istore 11 /* r */
        start local 11 // int r
        24: .line 258
            iload 10 /* rlen */
            iload 11 /* r */
            iadd
            istore 10 /* rlen */
        25: .line 259
            iload 10 /* rlen */
            ireturn
        end local 11 // int r
        end local 10 // int rlen
        end local 9 // int blen
        end local 8 // int prevLen
        end local 7 // byte[] bytes
        end local 6 // int end
        end local 5 // int prev
        end local 4 // int p
        end local 3 // boolean ambig
        end local 2 // org.joni.ast.StringNode sn
        end local 1 // org.joni.ast.Node node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lorg/joni/ArrayCompiler;
            0   26     1     node  Lorg/joni/ast/Node;
            1   26     2       sn  Lorg/joni/ast/StringNode;
            3   26     3    ambig  Z
            5   26     4        p  I
            4   26     5     prev  I
            6   26     6      end  I
            7   26     7    bytes  [B
            8   26     8  prevLen  I
           10   26     9     blen  I
           11   26    10     rlen  I
           13   22    11      len  I
           17   21    12        r  I
           24   26    11        r  I
    MethodParameters:
      Name  Flags
      node  

  private int compileLengthStringRawNode(org.joni.ast.StringNode);
    descriptor: (Lorg/joni/ast/StringNode;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.StringNode sn
         0: .line 263
            aload 1 /* sn */
            invokevirtual org.joni.ast.StringNode.length:()I
            ifgt 1
            iconst_0
            ireturn
         1: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sn */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 1 /* sn */
            getfield org.joni.ast.StringNode.p:I
            iconst_1
            aload 1 /* sn */
            invokevirtual org.joni.ast.StringNode.length:()I
            iconst_0
            invokevirtual org.joni.ArrayCompiler.addCompileStringlength:([BIIIZ)I
            ireturn
        end local 1 // org.joni.ast.StringNode sn
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ArrayCompiler;
            0    2     1    sn  Lorg/joni/ast/StringNode;
    MethodParameters:
      Name  Flags
      sn    

  private void addMultiByteCClass(org.joni.CodeRangeBuffer);
    descriptor: (Lorg/joni/CodeRangeBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.CodeRangeBuffer mbuf
         0: .line 268
            aload 0 /* this */
            aload 1 /* mbuf */
            invokevirtual org.joni.CodeRangeBuffer.getUsed:()I
            invokevirtual org.joni.ArrayCompiler.addLength:(I)V
         1: .line 269
            aload 0 /* this */
            aload 1 /* mbuf */
            invokevirtual org.joni.CodeRangeBuffer.getCodeRange:()[I
            aload 1 /* mbuf */
            invokevirtual org.joni.CodeRangeBuffer.getUsed:()I
            invokevirtual org.joni.ArrayCompiler.addInts:([II)V
         2: .line 270
            return
        end local 1 // org.joni.CodeRangeBuffer mbuf
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/joni/ArrayCompiler;
            0    3     1  mbuf  Lorg/joni/CodeRangeBuffer;
    MethodParameters:
      Name  Flags
      mbuf  

  private int compileLengthCClassNode(org.joni.ast.CClassNode);
    descriptor: (Lorg/joni/ast/CClassNode;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.CClassNode cc
         0: .line 274
            aload 1 /* cc */
            getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
            ifnonnull 3
         1: .line 275
            bipush 9
            istore 2 /* len */
        start local 2 // int len
         2: .line 276
            goto 8
        end local 2 // int len
         3: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.minLength:()I
            iconst_1
            if_icmpgt 4
            aload 1 /* cc */
            getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
            invokevirtual org.joni.BitSet.isEmpty:()Z
            ifeq 6
         4: .line 278
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* len */
        start local 2 // int len
         5: .line 279
            goto 7
        end local 2 // int len
         6: .line 280
      StackMap locals:
      StackMap stack:
            bipush 9
            istore 2 /* len */
        start local 2 // int len
         7: .line 283
      StackMap locals: int
      StackMap stack:
            iload 2 /* len */
            iconst_1
            aload 1 /* cc */
            getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
            invokevirtual org.joni.CodeRangeBuffer.getUsed:()I
            iadd
            iadd
            istore 2 /* len */
         8: .line 285
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            ireturn
        end local 2 // int len
        end local 1 // org.joni.ast.CClassNode cc
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/joni/ArrayCompiler;
            0    9     1    cc  Lorg/joni/ast/CClassNode;
            2    3     2   len  I
            5    6     2   len  I
            7    9     2   len  I
    MethodParameters:
      Name  Flags
      cc    

  protected void compileCClassNode(org.joni.ast.CClassNode);
    descriptor: (Lorg/joni/ast/CClassNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.CClassNode cc
         0: .line 290
            aload 1 /* cc */
            getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
            ifnonnull 7
         1: .line 291
            aload 1 /* cc */
            invokevirtual org.joni.ast.CClassNode.isNot:()Z
            ifeq 4
         2: .line 292
            aload 0 /* this */
            bipush 19
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         3: .line 293
            goto 5
         4: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 16
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         5: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cc */
            getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
            getfield org.joni.BitSet.bits:[I
            bipush 8
            invokevirtual org.joni.ArrayCompiler.addInts:([II)V
         6: .line 297
            goto 20
         7: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.enc:Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.minLength:()I
            iconst_1
            if_icmpgt 8
            aload 1 /* cc */
            getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
            invokevirtual org.joni.BitSet.isEmpty:()Z
            ifeq 14
         8: .line 299
      StackMap locals:
      StackMap stack:
            aload 1 /* cc */
            invokevirtual org.joni.ast.CClassNode.isNot:()Z
            ifeq 11
         9: .line 300
            aload 0 /* this */
            bipush 20
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        10: .line 301
            goto 12
        11: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 17
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        12: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cc */
            getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
            invokevirtual org.joni.ArrayCompiler.addMultiByteCClass:(Lorg/joni/CodeRangeBuffer;)V
        13: .line 305
            goto 20
        14: .line 306
      StackMap locals:
      StackMap stack:
            aload 1 /* cc */
            invokevirtual org.joni.ast.CClassNode.isNot:()Z
            ifeq 17
        15: .line 307
            aload 0 /* this */
            bipush 21
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        16: .line 308
            goto 18
        17: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 18
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        18: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cc */
            getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
            getfield org.joni.BitSet.bits:[I
            bipush 8
            invokevirtual org.joni.ArrayCompiler.addInts:([II)V
        19: .line 313
            aload 0 /* this */
            aload 1 /* cc */
            getfield org.joni.ast.CClassNode.mbuf:Lorg/joni/CodeRangeBuffer;
            invokevirtual org.joni.ArrayCompiler.addMultiByteCClass:(Lorg/joni/CodeRangeBuffer;)V
        20: .line 316
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.joni.ast.CClassNode cc
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lorg/joni/ArrayCompiler;
            0   21     1    cc  Lorg/joni/ast/CClassNode;
    MethodParameters:
      Name  Flags
      cc    

  protected void compileCTypeNode(org.joni.ast.CTypeNode);
    descriptor: (Lorg/joni/ast/CTypeNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.CTypeNode node
         0: .line 320
            aload 1 /* node */
            astore 2 /* cn */
        start local 2 // org.joni.ast.CTypeNode cn
         1: .line 322
            aload 2 /* cn */
            getfield org.joni.ast.CTypeNode.ctype:I
            tableswitch { // 12 - 12
                   12: 2
              default: 13
          }
         2: .line 324
      StackMap locals: org.joni.ast.CTypeNode
      StackMap stack:
            aload 2 /* cn */
            getfield org.joni.ast.CTypeNode.not:Z
            ifeq 8
         3: .line 325
            aload 2 /* cn */
            getfield org.joni.ast.CTypeNode.asciiRange:Z
            ifeq 6
         4: .line 326
            bipush 35
            istore 3 /* op */
        start local 3 // int op
         5: .line 327
            goto 15
        end local 3 // int op
         6: .line 328
      StackMap locals:
      StackMap stack:
            bipush 29
            istore 3 /* op */
        start local 3 // int op
         7: .line 330
            goto 15
        end local 3 // int op
         8: .line 331
      StackMap locals:
      StackMap stack:
            aload 2 /* cn */
            getfield org.joni.ast.CTypeNode.asciiRange:Z
            ifeq 11
         9: .line 332
            bipush 34
            istore 3 /* op */
        start local 3 // int op
        10: .line 333
            goto 15
        end local 3 // int op
        11: .line 334
      StackMap locals:
      StackMap stack:
            bipush 28
            istore 3 /* op */
        start local 3 // int op
        12: .line 337
            goto 15
        end local 3 // int op
        13: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "internal parser error (bug)"
            invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
        14: .line 341
            return
        start local 3 // int op
        15: .line 343
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* op */
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        16: .line 344
            return
        end local 3 // int op
        end local 2 // org.joni.ast.CTypeNode cn
        end local 1 // org.joni.ast.CTypeNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lorg/joni/ArrayCompiler;
            0   17     1  node  Lorg/joni/ast/CTypeNode;
            1   17     2    cn  Lorg/joni/ast/CTypeNode;
            5    6     3    op  I
            7    8     3    op  I
           10   11     3    op  I
           12   13     3    op  I
           15   17     3    op  I
    MethodParameters:
      Name  Flags
      node  

  protected void compileAnyCharNode();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joni.ArrayCompiler this
         0: .line 348
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            invokestatic org.joni.Option.isMultiline:(I)Z
            ifeq 3
         1: .line 349
            aload 0 /* this */
            bipush 23
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         2: .line 350
            goto 4
         3: .line 351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 22
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         4: .line 353
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/joni/ArrayCompiler;

  protected void compileCallNode(org.joni.ast.CallNode);
    descriptor: (Lorg/joni/ast/CallNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.CallNode node
         0: .line 357
            aload 0 /* this */
            bipush 88
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         1: .line 358
            aload 1 /* node */
            getfield org.joni.ast.CallNode.unsetAddrList:Lorg/joni/UnsetAddrList;
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.codeLength:I
            aload 1 /* node */
            getfield org.joni.ast.CallNode.target:Lorg/joni/ast/EncloseNode;
            invokevirtual org.joni.UnsetAddrList.add:(ILorg/joni/ast/EncloseNode;)V
         2: .line 359
            aload 0 /* this */
            iconst_0
            invokevirtual org.joni.ArrayCompiler.addAbsAddr:(I)V
         3: .line 360
            return
        end local 1 // org.joni.ast.CallNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/joni/ArrayCompiler;
            0    4     1  node  Lorg/joni/ast/CallNode;
    MethodParameters:
      Name  Flags
      node  

  protected void compileBackrefNode(org.joni.ast.BackRefNode);
    descriptor: (Lorg/joni/ast/BackRefNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.BackRefNode node
         0: .line 364
            aload 1 /* node */
            astore 2 /* br */
        start local 2 // org.joni.ast.BackRefNode br
         1: .line 365
            aload 2 /* br */
            invokevirtual org.joni.ast.BackRefNode.isNestLevel:()Z
            ifeq 11
         2: .line 366
            aload 0 /* this */
            bipush 52
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         3: .line 367
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            iconst_1
            iand
            invokevirtual org.joni.ArrayCompiler.addOption:(I)V
         4: .line 368
            aload 0 /* this */
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.nestLevel:I
            invokevirtual org.joni.ArrayCompiler.addLength:(I)V
         5: .line 370
            aload 0 /* this */
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.backNum:I
            invokevirtual org.joni.ArrayCompiler.addLength:(I)V
         6: .line 371
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.backNum:I
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
         7: goto 9
      StackMap locals: org.joni.ast.BackRefNode int
      StackMap stack:
         8: aload 0 /* this */
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.back:[I
            iload 3 /* i */
            iaload
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
            iinc 3 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            ifge 8
        end local 3 // int i
        10: .line 372
            return
        11: .line 374
      StackMap locals:
      StackMap stack:
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.backNum:I
            iconst_1
            if_icmpne 24
        12: .line 375
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            invokestatic org.joni.Option.isIgnoreCase:(I)Z
            ifeq 16
        13: .line 376
            aload 0 /* this */
            bipush 49
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        14: .line 377
            aload 0 /* this */
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.back:[I
            iconst_0
            iaload
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
        15: .line 378
            goto 33
        16: .line 379
      StackMap locals:
      StackMap stack:
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.back:[I
            iconst_0
            iaload
            tableswitch { // 1 - 2
                    1: 17
                    2: 19
              default: 21
          }
        17: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 46
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        18: .line 382
            goto 33
        19: .line 384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 47
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        20: .line 385
            goto 33
        21: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 48
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        22: .line 388
            aload 0 /* this */
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.back:[I
            iconst_0
            iaload
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        23: .line 392
            goto 33
        24: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            invokestatic org.joni.Option.isIgnoreCase:(I)Z
            ifeq 27
        25: .line 394
            aload 0 /* this */
            bipush 51
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        26: .line 395
            goto 28
        27: .line 396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 50
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        28: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.backNum:I
            invokevirtual org.joni.ArrayCompiler.addLength:(I)V
        29: .line 400
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.backNum:I
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
        30: goto 32
      StackMap locals: int
      StackMap stack:
        31: aload 0 /* this */
            aload 2 /* br */
            getfield org.joni.ast.BackRefNode.back:[I
            iload 3 /* i */
            iaload
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
            iinc 3 /* i */ -1
      StackMap locals:
      StackMap stack:
        32: iload 3 /* i */
            ifge 31
        end local 3 // int i
        33: .line 403
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.joni.ast.BackRefNode br
        end local 1 // org.joni.ast.BackRefNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   34     0  this  Lorg/joni/ArrayCompiler;
            0   34     1  node  Lorg/joni/ast/BackRefNode;
            1   34     2    br  Lorg/joni/ast/BackRefNode;
            7   10     3     i  I
           30   33     3     i  I
    MethodParameters:
      Name  Flags
      node  

  private void entryRepeatRange(int, int, int);
    descriptor: (III)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int id
        start local 2 // int lower
        start local 3 // int upper
         0: .line 407
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeLo:[I
            ifnonnull 4
         1: .line 408
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            bipush 8
            newarray 10
            putfield org.joni.Regex.repeatRangeLo:[I
         2: .line 409
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            bipush 8
            newarray 10
            putfield org.joni.Regex.repeatRangeHi:[I
         3: .line 410
            goto 11
      StackMap locals:
      StackMap stack:
         4: iload 1 /* id */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeLo:[I
            arraylength
            if_icmplt 11
         5: .line 411
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeLo:[I
            arraylength
            bipush 8
            iadd
            newarray 10
            astore 4 /* tmp */
        start local 4 // int[] tmp
         6: .line 412
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeLo:[I
            iconst_0
            aload 4 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeLo:[I
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 413
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            aload 4 /* tmp */
            putfield org.joni.Regex.repeatRangeLo:[I
         8: .line 414
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeHi:[I
            arraylength
            bipush 8
            iadd
            newarray 10
            astore 4 /* tmp */
         9: .line 415
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeHi:[I
            iconst_0
            aload 4 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeHi:[I
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 416
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            aload 4 /* tmp */
            putfield org.joni.Regex.repeatRangeHi:[I
        end local 4 // int[] tmp
        11: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeLo:[I
            iload 1 /* id */
            iload 2 /* lower */
            iastore
        12: .line 420
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.repeatRangeHi:[I
            iload 1 /* id */
            iload 3 /* upper */
            invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
            ifeq 13
            ldc 2147483647
            goto 14
      StackMap locals: org.joni.ArrayCompiler int int int
      StackMap stack: int[] int
        13: iload 3 /* upper */
      StackMap locals: org.joni.ArrayCompiler int int int
      StackMap stack: int[] int int
        14: iastore
        15: .line 421
            return
        end local 3 // int upper
        end local 2 // int lower
        end local 1 // int id
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lorg/joni/ArrayCompiler;
            0   16     1     id  I
            0   16     2  lower  I
            0   16     3  upper  I
            6   11     4    tmp  [I
    MethodParameters:
       Name  Flags
      id     
      lower  
      upper  

  private void compileRangeRepeatNode(org.joni.ast.QuantifierNode, int, int);
    descriptor: (Lorg/joni/ast/QuantifierNode;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.QuantifierNode qn
        start local 2 // int targetLen
        start local 3 // int emptyInfo
         0: .line 424
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
         1: .line 425
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.numRepeat:I
            istore 4 /* numRepeat */
        start local 4 // int numRepeat
         2: .line 426
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 3
            bipush 66
            goto 4
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int
      StackMap stack: org.joni.ArrayCompiler
         3: bipush 67
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int
      StackMap stack: org.joni.ArrayCompiler int
         4: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         5: .line 427
            aload 0 /* this */
            iload 4 /* numRepeat */
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
         6: .line 428
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            dup
            getfield org.joni.Regex.numRepeat:I
            iconst_1
            iadd
            putfield org.joni.Regex.numRepeat:I
         7: .line 429
            aload 0 /* this */
            iload 2 /* targetLen */
            iconst_2
            iadd
            invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
         8: .line 431
            aload 0 /* this */
            iload 4 /* numRepeat */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            invokevirtual org.joni.ArrayCompiler.entryRepeatRange:(III)V
         9: .line 433
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            iload 3 /* emptyInfo */
            invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
        10: .line 435
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.numCall:I
            ifgt 11
            aload 1 /* qn */
            invokevirtual org.joni.ast.QuantifierNode.isInRepeat:()Z
            ifeq 15
        11: .line 436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 12
            bipush 70
            goto 13
      StackMap locals:
      StackMap stack: org.joni.ArrayCompiler
        12: bipush 71
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int
      StackMap stack: org.joni.ArrayCompiler int
        13: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        14: .line 437
            goto 18
        15: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 16
            bipush 68
            goto 17
      StackMap locals:
      StackMap stack: org.joni.ArrayCompiler
        16: bipush 69
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int
      StackMap stack: org.joni.ArrayCompiler int
        17: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        18: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* numRepeat */
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
        19: .line 442
            return
        end local 4 // int numRepeat
        end local 3 // int emptyInfo
        end local 2 // int targetLen
        end local 1 // org.joni.ast.QuantifierNode qn
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lorg/joni/ArrayCompiler;
            0   20     1         qn  Lorg/joni/ast/QuantifierNode;
            0   20     2  targetLen  I
            0   20     3  emptyInfo  I
            2   20     4  numRepeat  I
    MethodParameters:
           Name  Flags
      qn         
      targetLen  
      emptyInfo  

  private static boolean cknOn(int);
    descriptor: (I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int ckn
         0: .line 447
            iload 0 /* ckn */
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int ckn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   ckn  I
    MethodParameters:
      Name  Flags
      ckn   

  private int compileCECLengthQuantifierNode(org.joni.ast.QuantifierNode);
    descriptor: (Lorg/joni/ast/QuantifierNode;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.QuantifierNode qn
         0: .line 451
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
            istore 2 /* infinite */
        start local 2 // boolean infinite
         1: .line 452
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
            istore 3 /* emptyInfo */
        start local 3 // int emptyInfo
         2: .line 454
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 4 /* tlen */
        start local 4 // int tlen
         3: .line 455
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.numCombExpCheck:I
            ifle 4
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.combExpCheckNum:I
            goto 5
      StackMap locals: int int int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* ckn */
        start local 5 // int ckn
         6: .line 456
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 6 /* cklen */
        start local 6 // int cklen
         9: .line 459
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ast.Node.getType:()I
            iconst_3
            if_icmpne 14
        10: .line 460
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 14
            iload 2 /* infinite */
            ifeq 14
        11: .line 461
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            ifnull 13
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifne 13
        12: .line 462
            iconst_2
            iload 4 /* tlen */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            imul
            iadd
            iload 6 /* cklen */
            iadd
            ireturn
        13: .line 464
      StackMap locals: int
      StackMap stack:
            iconst_1
            iload 4 /* tlen */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            imul
            iadd
            iload 6 /* cklen */
            iadd
            ireturn
        14: .line 470
      StackMap locals:
      StackMap stack:
            iload 3 /* emptyInfo */
            ifeq 17
        15: .line 471
            iload 4 /* tlen */
            iconst_4
            iadd
            istore 7 /* modTLen */
        start local 7 // int modTLen
        16: .line 472
            goto 18
        end local 7 // int modTLen
        17: .line 473
      StackMap locals:
      StackMap stack:
            iload 4 /* tlen */
            istore 7 /* modTLen */
        start local 7 // int modTLen
        18: .line 477
      StackMap locals: int
      StackMap stack:
            iload 2 /* infinite */
            ifeq 32
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            iconst_1
            if_icmpgt 32
        19: .line 478
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 26
        20: .line 479
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            iconst_1
            if_icmpne 23
        21: .line 480
            iconst_2
            istore 8 /* len */
        start local 8 // int len
        22: .line 481
            goto 24
        end local 8 // int len
        23: .line 482
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* len */
        start local 8 // int len
        24: .line 484
      StackMap locals: int
      StackMap stack:
            iload 8 /* len */
            iconst_2
            iload 6 /* cklen */
            iadd
            iload 7 /* modTLen */
            iadd
            iconst_2
            iadd
            iadd
            istore 8 /* len */
        25: .line 485
            goto 53
        end local 8 // int len
        26: .line 486
      StackMap locals:
      StackMap stack:
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            ifne 29
        27: .line 487
            iconst_2
            istore 8 /* len */
        start local 8 // int len
        28: .line 488
            goto 30
        end local 8 // int len
        29: .line 489
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* len */
        start local 8 // int len
        30: .line 491
      StackMap locals: int
      StackMap stack:
            iload 8 /* len */
            iload 7 /* modTLen */
            iconst_2
            iadd
            iload 6 /* cklen */
            iadd
            iadd
            istore 8 /* len */
        31: .line 493
            goto 53
        end local 8 // int len
      StackMap locals:
      StackMap stack:
        32: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            ifne 38
        33: .line 494
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.isRefered:Z
            ifeq 36
        34: .line 495
            iconst_2
            iload 4 /* tlen */
            iadd
            istore 8 /* len */
        start local 8 // int len
        35: .line 496
            goto 53
        end local 8 // int len
        36: .line 497
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* len */
        start local 8 // int len
        37: .line 499
            goto 53
        end local 8 // int len
      StackMap locals:
      StackMap stack:
        38: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            iconst_1
            if_icmpne 47
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 47
        39: .line 500
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            ifne 45
        40: .line 501
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 43
        41: .line 502
            iconst_3
            iload 4 /* tlen */
            iadd
            istore 8 /* len */
        start local 8 // int len
        42: .line 503
            goto 53
        end local 8 // int len
        43: .line 504
      StackMap locals:
      StackMap stack:
            iconst_2
            iload 4 /* tlen */
            iadd
            istore 8 /* len */
        start local 8 // int len
        44: .line 506
            goto 53
        end local 8 // int len
        45: .line 507
      StackMap locals:
      StackMap stack:
            iload 4 /* tlen */
            istore 8 /* len */
        start local 8 // int len
        46: .line 509
            goto 53
        end local 8 // int len
      StackMap locals:
      StackMap stack:
        47: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifne 50
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            iconst_1
            if_icmpne 50
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            ifne 50
        48: .line 510
            iconst_2
            iload 6 /* cklen */
            iadd
            iconst_2
            iadd
            iload 4 /* tlen */
            iadd
            istore 8 /* len */
        start local 8 // int len
        49: .line 511
            goto 53
        end local 8 // int len
        50: .line 512
      StackMap locals:
      StackMap stack:
            iconst_2
            iload 7 /* modTLen */
            iadd
            iconst_1
            iadd
            iconst_1
            iadd
            iconst_1
            iadd
            istore 8 /* len */
        start local 8 // int len
        51: .line 514
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 53
        52: .line 515
            iinc 8 /* len */ 2
        53: .line 518
      StackMap locals: int
      StackMap stack:
            iload 8 /* len */
            ireturn
        end local 8 // int len
        end local 7 // int modTLen
        end local 6 // int cklen
        end local 5 // int ckn
        end local 4 // int tlen
        end local 3 // int emptyInfo
        end local 2 // boolean infinite
        end local 1 // org.joni.ast.QuantifierNode qn
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   54     0       this  Lorg/joni/ArrayCompiler;
            0   54     1         qn  Lorg/joni/ast/QuantifierNode;
            1   54     2   infinite  Z
            2   54     3  emptyInfo  I
            3   54     4       tlen  I
            6   54     5        ckn  I
            9   54     6      cklen  I
           16   17     7    modTLen  I
           18   54     7    modTLen  I
           22   23     8        len  I
           24   26     8        len  I
           28   29     8        len  I
           30   32     8        len  I
           35   36     8        len  I
           37   38     8        len  I
           42   43     8        len  I
           44   45     8        len  I
           46   47     8        len  I
           49   50     8        len  I
           51   54     8        len  I
    MethodParameters:
      Name  Flags
      qn    

  protected void compileCECQuantifierNode(org.joni.ast.QuantifierNode);
    descriptor: (Lorg/joni/ast/QuantifierNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.QuantifierNode qn
         0: .line 523
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
         1: .line 524
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
            istore 2 /* infinite */
        start local 2 // boolean infinite
         2: .line 525
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
            istore 3 /* emptyInfo */
        start local 3 // int emptyInfo
         3: .line 527
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 4 /* tlen */
        start local 4 // int tlen
         4: .line 529
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.numCombExpCheck:I
            ifle 5
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.combExpCheckNum:I
            goto 6
      StackMap locals: int int int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* ckn */
        start local 5 // int ckn
         7: .line 531
            aload 1 /* qn */
            invokevirtual org.joni.ast.QuantifierNode.isAnyCharStar:()Z
            ifeq 32
         8: .line 532
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
         9: .line 533
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            ifnull 19
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifne 19
        10: .line 534
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            invokestatic org.joni.Option.isMultiline:(I)Z
            ifeq 13
        11: .line 535
            aload 0 /* this */
            bipush 27
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        12: .line 536
            goto 14
        13: .line 537
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            bipush 26
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        14: .line 539
      StackMap locals:
      StackMap stack:
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 16
        15: .line 540
            aload 0 /* this */
            iload 5 /* ckn */
            invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
        16: .line 542
      StackMap locals:
      StackMap stack:
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            checkcast org.joni.ast.StringNode
            astore 6 /* sn */
        start local 6 // org.joni.ast.StringNode sn
        17: .line 543
            aload 0 /* this */
            aload 6 /* sn */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 6 /* sn */
            getfield org.joni.ast.StringNode.p:I
            iconst_1
            invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
        18: .line 544
            return
        end local 6 // org.joni.ast.StringNode sn
        19: .line 546
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            invokestatic org.joni.Option.isMultiline:(I)Z
            ifeq 25
        20: .line 547
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 23
        21: .line 548
            aload 0 /* this */
            bipush 95
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        22: .line 549
            goto 29
        23: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 25
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        24: .line 552
            goto 29
        25: .line 553
      StackMap locals:
      StackMap stack:
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 28
        26: .line 554
            aload 0 /* this */
            bipush 94
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        27: .line 555
            goto 29
        28: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 24
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        29: .line 559
      StackMap locals:
      StackMap stack:
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 31
        30: .line 560
            aload 0 /* this */
            iload 5 /* ckn */
            invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
        31: .line 562
      StackMap locals:
      StackMap stack:
            return
        32: .line 567
      StackMap locals:
      StackMap stack:
            iload 3 /* emptyInfo */
            ifeq 35
        33: .line 568
            iload 4 /* tlen */
            iconst_4
            iadd
            istore 6 /* modTLen */
        start local 6 // int modTLen
        34: .line 569
            goto 36
        end local 6 // int modTLen
        35: .line 570
      StackMap locals:
      StackMap stack:
            iload 4 /* tlen */
            istore 6 /* modTLen */
        start local 6 // int modTLen
        36: .line 572
      StackMap locals: int
      StackMap stack:
            iload 2 /* infinite */
            ifeq 65
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            iconst_1
            if_icmpgt 65
        37: .line 573
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 55
        38: .line 574
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            iconst_1
            if_icmpne 42
        39: .line 575
            aload 0 /* this */
            bipush 61
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 40
            iconst_3
            goto 41
        40: .line 576
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int int int
      StackMap stack: org.joni.ArrayCompiler int
            iconst_2
        41: .line 575
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int int int
      StackMap stack: org.joni.ArrayCompiler int int
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        42: .line 578
      StackMap locals:
      StackMap stack:
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 47
        43: .line 579
            aload 0 /* this */
            bipush 91
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        44: .line 580
            aload 0 /* this */
            iload 5 /* ckn */
            invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
        45: .line 581
            aload 0 /* this */
            iload 6 /* modTLen */
            iconst_2
            iadd
            invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
        46: .line 582
            goto 48
        47: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 62
            iload 6 /* modTLen */
            iconst_2
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        48: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            iload 3 /* emptyInfo */
            invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
        49: .line 586
            aload 0 /* this */
            bipush 61
            iload 6 /* modTLen */
            iconst_2
            iadd
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 51
        50: .line 587
            iconst_3
            goto 52
        51: .line 588
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int int int
      StackMap stack: org.joni.ArrayCompiler int int
            iconst_2
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.QuantifierNode int int int int int
      StackMap stack: org.joni.ArrayCompiler int int int
        52: iadd
            ineg
        53: .line 586
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        54: .line 589
            goto 94
        55: .line 590
      StackMap locals:
      StackMap stack:
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            ifne 57
        56: .line 591
            aload 0 /* this */
            bipush 61
            iload 6 /* modTLen */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        57: .line 593
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            iload 3 /* emptyInfo */
            invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
        58: .line 594
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 63
        59: .line 595
            aload 0 /* this */
            bipush 92
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        60: .line 596
            aload 0 /* this */
            iload 5 /* ckn */
            invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
        61: .line 597
            aload 0 /* this */
            iload 6 /* modTLen */
            iconst_3
            iadd
            ineg
            invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
        62: .line 598
            goto 94
        63: .line 599
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 62
            iload 6 /* modTLen */
            iconst_2
            iadd
            ineg
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        64: .line 602
            goto 94
      StackMap locals:
      StackMap stack:
        65: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            ifne 70
        66: .line 603
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.isRefered:Z
            ifeq 94
        67: .line 604
            aload 0 /* this */
            bipush 61
            iload 4 /* tlen */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        68: .line 605
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        69: .line 607
            goto 94
      StackMap locals:
      StackMap stack:
        70: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            iconst_1
            if_icmpne 80
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 80
        71: .line 608
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            ifne 78
        72: .line 609
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 77
        73: .line 610
            aload 0 /* this */
            bipush 91
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        74: .line 611
            aload 0 /* this */
            iload 5 /* ckn */
            invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
        75: .line 612
            aload 0 /* this */
            iload 4 /* tlen */
            invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
        76: .line 613
            goto 78
        77: .line 614
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 62
            iload 4 /* tlen */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        78: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        79: .line 618
            goto 94
      StackMap locals:
      StackMap stack:
        80: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifne 90
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            iconst_1
            if_icmpne 90
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            ifne 90
        81: .line 619
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 86
        82: .line 620
            aload 0 /* this */
            bipush 91
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        83: .line 621
            aload 0 /* this */
            iload 5 /* ckn */
            invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
        84: .line 622
            aload 0 /* this */
            iconst_2
            invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
        85: .line 623
            goto 87
        86: .line 624
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 62
            iconst_2
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        87: .line 627
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 61
            iload 4 /* tlen */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        88: .line 628
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        89: .line 629
            goto 94
        90: .line 630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* qn */
            iload 6 /* modTLen */
            iload 3 /* emptyInfo */
            invokevirtual org.joni.ArrayCompiler.compileRangeRepeatNode:(Lorg/joni/ast/QuantifierNode;II)V
        91: .line 631
            iload 5 /* ckn */
            invokestatic org.joni.ArrayCompiler.cknOn:(I)Z
            ifeq 94
        92: .line 632
            aload 0 /* this */
            bipush 93
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        93: .line 633
            aload 0 /* this */
            iload 5 /* ckn */
            invokevirtual org.joni.ArrayCompiler.addStateCheckNum:(I)V
        94: .line 636
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int modTLen
        end local 5 // int ckn
        end local 4 // int tlen
        end local 3 // int emptyInfo
        end local 2 // boolean infinite
        end local 1 // org.joni.ast.QuantifierNode qn
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   95     0       this  Lorg/joni/ArrayCompiler;
            0   95     1         qn  Lorg/joni/ast/QuantifierNode;
            2   95     2   infinite  Z
            3   95     3  emptyInfo  I
            4   95     4       tlen  I
            7   95     5        ckn  I
           17   19     6         sn  Lorg/joni/ast/StringNode;
           34   35     6    modTLen  I
           36   95     6    modTLen  I
    MethodParameters:
      Name  Flags
      qn    

  private int compileNonCECLengthQuantifierNode(org.joni.ast.QuantifierNode);
    descriptor: (Lorg/joni/ast/QuantifierNode;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.QuantifierNode qn
         0: .line 639
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
            istore 2 /* infinite */
        start local 2 // boolean infinite
         1: .line 640
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
            istore 3 /* emptyInfo */
        start local 3 // int emptyInfo
         2: .line 642
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 4 /* tlen */
        start local 4 // int tlen
         3: .line 645
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ast.Node.getType:()I
            iconst_3
            if_icmpne 8
         4: .line 646
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 8
            iload 2 /* infinite */
            ifeq 8
         5: .line 647
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            ifnull 7
         6: .line 648
            iconst_2
            iload 4 /* tlen */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            imul
            iadd
            ireturn
         7: .line 650
      StackMap locals: int int int
      StackMap stack:
            iconst_1
            iload 4 /* tlen */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            imul
            iadd
            ireturn
         8: .line 655
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* modTLen */
        start local 5 // int modTLen
         9: .line 656
            iload 3 /* emptyInfo */
            ifeq 12
        10: .line 657
            iload 4 /* tlen */
            iconst_4
            iadd
            istore 5 /* modTLen */
        11: .line 658
            goto 13
        12: .line 659
      StackMap locals: int
      StackMap stack:
            iload 4 /* tlen */
            istore 5 /* modTLen */
        13: .line 663
      StackMap locals:
      StackMap stack:
            iload 2 /* infinite */
            ifeq 29
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            iconst_1
            if_icmple 14
            iload 4 /* tlen */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            imul
            bipush 50
            if_icmpgt 29
        14: .line 664
      StackMap locals:
      StackMap stack:
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            iconst_1
            if_icmpne 17
            iload 4 /* tlen */
            bipush 50
            if_icmple 17
        15: .line 665
            iconst_2
            istore 6 /* len */
        start local 6 // int len
        16: .line 666
            goto 18
        end local 6 // int len
        17: .line 667
      StackMap locals:
      StackMap stack:
            iload 4 /* tlen */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            imul
            istore 6 /* len */
        start local 6 // int len
        18: .line 670
      StackMap locals: int
      StackMap stack:
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 27
        19: .line 671
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
            ifnull 22
        20: .line 672
            iload 6 /* len */
            iconst_3
            iload 5 /* modTLen */
            iadd
            iconst_2
            iadd
            iadd
            istore 6 /* len */
        21: .line 673
            goto 41
      StackMap locals:
      StackMap stack:
        22: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            ifnull 25
        23: .line 674
            iload 6 /* len */
            iconst_3
            iload 5 /* modTLen */
            iadd
            iconst_2
            iadd
            iadd
            istore 6 /* len */
        24: .line 675
            goto 41
        25: .line 676
      StackMap locals:
      StackMap stack:
            iload 6 /* len */
            iconst_2
            iload 5 /* modTLen */
            iadd
            iconst_2
            iadd
            iadd
            istore 6 /* len */
        26: .line 678
            goto 41
        27: .line 679
      StackMap locals:
      StackMap stack:
            iload 6 /* len */
            iconst_2
            iload 5 /* modTLen */
            iadd
            iconst_2
            iadd
            iadd
            istore 6 /* len */
        28: .line 682
            goto 41
        end local 6 // int len
      StackMap locals:
      StackMap stack:
        29: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            ifne 32
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.isRefered:Z
            ifeq 32
        30: .line 683
            iconst_2
            iload 4 /* tlen */
            iadd
            istore 6 /* len */
        start local 6 // int len
        31: .line 684
            goto 41
        end local 6 // int len
      StackMap locals:
      StackMap stack:
        32: iload 2 /* infinite */
            ifne 37
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 37
        33: .line 685
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            iconst_1
            if_icmpeq 34
            iload 4 /* tlen */
            iconst_2
            iadd
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            imul
            bipush 50
            if_icmpgt 37
        34: .line 686
      StackMap locals:
      StackMap stack:
            iload 4 /* tlen */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            imul
            istore 6 /* len */
        start local 6 // int len
        35: .line 687
            iload 6 /* len */
            iconst_2
            iload 4 /* tlen */
            iadd
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            isub
            imul
            iadd
            istore 6 /* len */
        36: .line 688
            goto 41
        end local 6 // int len
      StackMap locals:
      StackMap stack:
        37: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifne 40
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            iconst_1
            if_icmpne 40
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            ifne 40
        38: .line 689
            iconst_4
            iload 4 /* tlen */
            iadd
            istore 6 /* len */
        start local 6 // int len
        39: .line 690
            goto 41
        end local 6 // int len
        40: .line 691
      StackMap locals:
      StackMap stack:
            iconst_2
            iload 5 /* modTLen */
            iadd
            iconst_1
            iadd
            iconst_1
            iadd
            iconst_1
            iadd
            istore 6 /* len */
        start local 6 // int len
        41: .line 693
      StackMap locals: int
      StackMap stack:
            iload 6 /* len */
            ireturn
        end local 6 // int len
        end local 5 // int modTLen
        end local 4 // int tlen
        end local 3 // int emptyInfo
        end local 2 // boolean infinite
        end local 1 // org.joni.ast.QuantifierNode qn
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   42     0       this  Lorg/joni/ArrayCompiler;
            0   42     1         qn  Lorg/joni/ast/QuantifierNode;
            1   42     2   infinite  Z
            2   42     3  emptyInfo  I
            3   42     4       tlen  I
            9   42     5    modTLen  I
           16   17     6        len  I
           18   29     6        len  I
           31   32     6        len  I
           35   37     6        len  I
           39   40     6        len  I
           41   42     6        len  I
    MethodParameters:
      Name  Flags
      qn    

  protected void compileNonCECQuantifierNode(org.joni.ast.QuantifierNode);
    descriptor: (Lorg/joni/ast/QuantifierNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.QuantifierNode qn
         0: .line 698
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
         1: .line 699
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            invokestatic org.joni.ast.QuantifierNode.isRepeatInfinite:(I)Z
            istore 2 /* infinite */
        start local 2 // boolean infinite
         2: .line 700
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.targetEmptyInfo:I
            istore 3 /* emptyInfo */
        start local 3 // int emptyInfo
         3: .line 702
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 4 /* tlen */
        start local 4 // int tlen
         4: .line 704
            aload 1 /* qn */
            invokevirtual org.joni.ast.QuantifierNode.isAnyCharStar:()Z
            ifeq 19
         5: .line 705
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
         6: .line 706
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            ifnull 14
         7: .line 707
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            invokestatic org.joni.Option.isMultiline:(I)Z
            ifeq 10
         8: .line 708
            aload 0 /* this */
            bipush 27
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         9: .line 709
            goto 11
        10: .line 710
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            bipush 26
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        11: .line 712
      StackMap locals:
      StackMap stack:
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            checkcast org.joni.ast.StringNode
            astore 5 /* sn */
        start local 5 // org.joni.ast.StringNode sn
        12: .line 713
            aload 0 /* this */
            aload 5 /* sn */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 5 /* sn */
            getfield org.joni.ast.StringNode.p:I
            iconst_1
            invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
        13: .line 714
            return
        end local 5 // org.joni.ast.StringNode sn
        14: .line 716
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            invokestatic org.joni.Option.isMultiline:(I)Z
            ifeq 17
        15: .line 717
            aload 0 /* this */
            bipush 25
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        16: .line 718
            goto 18
        17: .line 719
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 24
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        18: .line 721
      StackMap locals:
      StackMap stack:
            return
        19: .line 726
      StackMap locals:
      StackMap stack:
            iload 3 /* emptyInfo */
            ifeq 22
        20: .line 727
            iload 4 /* tlen */
            iconst_4
            iadd
            istore 5 /* modTLen */
        start local 5 // int modTLen
        21: .line 728
            goto 23
        end local 5 // int modTLen
        22: .line 729
      StackMap locals:
      StackMap stack:
            iload 4 /* tlen */
            istore 5 /* modTLen */
        start local 5 // int modTLen
        23: .line 731
      StackMap locals: int
      StackMap stack:
            iload 2 /* infinite */
            ifeq 60
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            iconst_1
            if_icmple 24
            iload 4 /* tlen */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            imul
            bipush 50
            if_icmpgt 60
        24: .line 732
      StackMap locals:
      StackMap stack:
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            iconst_1
            if_icmpne 36
            iload 4 /* tlen */
            bipush 50
            if_icmple 36
        25: .line 733
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 34
        26: .line 734
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
            ifnull 29
        27: .line 735
            aload 0 /* this */
            bipush 61
            iconst_3
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        28: .line 736
            goto 37
      StackMap locals:
      StackMap stack:
        29: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            ifnull 32
        30: .line 737
            aload 0 /* this */
            bipush 61
            iconst_3
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        31: .line 738
            goto 37
        32: .line 739
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 61
            iconst_2
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        33: .line 741
            goto 37
        34: .line 742
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 61
            iconst_2
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        35: .line 744
            goto 37
        36: .line 745
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
        37: .line 748
      StackMap locals:
      StackMap stack:
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 56
        38: .line 749
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
            ifnull 45
        39: .line 750
            aload 0 /* this */
            bipush 64
            iload 5 /* modTLen */
            iconst_2
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        40: .line 751
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.headExact:Lorg/joni/ast/Node;
            checkcast org.joni.ast.StringNode
            astore 6 /* sn */
        start local 6 // org.joni.ast.StringNode sn
        41: .line 752
            aload 0 /* this */
            aload 6 /* sn */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 6 /* sn */
            getfield org.joni.ast.StringNode.p:I
            iconst_1
            invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
        42: .line 753
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            iload 3 /* emptyInfo */
            invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
        43: .line 754
            aload 0 /* this */
            bipush 61
            iload 5 /* modTLen */
            iconst_2
            iadd
            iconst_3
            iadd
            ineg
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        end local 6 // org.joni.ast.StringNode sn
        44: .line 755
            goto 81
      StackMap locals:
      StackMap stack:
        45: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            ifnull 52
        46: .line 756
            aload 0 /* this */
            bipush 65
            iload 5 /* modTLen */
            iconst_2
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        47: .line 757
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.nextHeadExact:Lorg/joni/ast/Node;
            checkcast org.joni.ast.StringNode
            astore 6 /* sn */
        start local 6 // org.joni.ast.StringNode sn
        48: .line 758
            aload 0 /* this */
            aload 6 /* sn */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 6 /* sn */
            getfield org.joni.ast.StringNode.p:I
            iconst_1
            invokevirtual org.joni.ArrayCompiler.addBytes:([BII)V
        49: .line 759
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            iload 3 /* emptyInfo */
            invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
        50: .line 760
            aload 0 /* this */
            bipush 61
            iload 5 /* modTLen */
            iconst_2
            iadd
            iconst_3
            iadd
            ineg
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        end local 6 // org.joni.ast.StringNode sn
        51: .line 761
            goto 81
        52: .line 762
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 62
            iload 5 /* modTLen */
            iconst_2
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        53: .line 763
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            iload 3 /* emptyInfo */
            invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
        54: .line 764
            aload 0 /* this */
            bipush 61
            iload 5 /* modTLen */
            iconst_2
            iadd
            iconst_2
            iadd
            ineg
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        55: .line 766
            goto 81
        56: .line 767
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 61
            iload 5 /* modTLen */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        57: .line 768
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            iload 3 /* emptyInfo */
            invokevirtual org.joni.ArrayCompiler.compileTreeEmptyCheck:(Lorg/joni/ast/Node;I)V
        58: .line 769
            aload 0 /* this */
            bipush 62
            iload 5 /* modTLen */
            iconst_2
            iadd
            ineg
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        59: .line 771
            goto 81
      StackMap locals:
      StackMap stack:
        60: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            ifne 64
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.isRefered:Z
            ifeq 64
        61: .line 772
            aload 0 /* this */
            bipush 61
            iload 4 /* tlen */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        62: .line 773
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        63: .line 774
            goto 81
      StackMap locals:
      StackMap stack:
        64: iload 2 /* infinite */
            ifne 75
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifeq 75
        65: .line 775
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            iconst_1
            if_icmpeq 66
            iload 4 /* tlen */
            iconst_2
            iadd
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            imul
            bipush 50
            if_icmpgt 75
        66: .line 776
      StackMap locals:
      StackMap stack:
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            isub
            istore 6 /* n */
        start local 6 // int n
        67: .line 777
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
        68: .line 779
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        69: goto 73
        70: .line 780
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            bipush 62
            iload 6 /* n */
            iload 7 /* i */
            isub
            iload 4 /* tlen */
            imul
            iload 6 /* n */
            iload 7 /* i */
            isub
            iconst_1
            isub
            iconst_2
            imul
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        71: .line 781
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        72: .line 779
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        73: iload 7 /* i */
            iload 6 /* n */
            if_icmplt 70
        end local 7 // int i
        end local 6 // int n
        74: .line 783
            goto 81
      StackMap locals:
      StackMap stack:
        75: aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.greedy:Z
            ifne 80
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.upper:I
            iconst_1
            if_icmpne 80
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            ifne 80
        76: .line 784
            aload 0 /* this */
            bipush 62
            iconst_2
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        77: .line 785
            aload 0 /* this */
            bipush 61
            iload 4 /* tlen */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        78: .line 786
            aload 0 /* this */
            aload 1 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        79: .line 787
            goto 81
        80: .line 788
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* qn */
            iload 5 /* modTLen */
            iload 3 /* emptyInfo */
            invokevirtual org.joni.ArrayCompiler.compileRangeRepeatNode:(Lorg/joni/ast/QuantifierNode;II)V
        81: .line 790
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int modTLen
        end local 4 // int tlen
        end local 3 // int emptyInfo
        end local 2 // boolean infinite
        end local 1 // org.joni.ast.QuantifierNode qn
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   82     0       this  Lorg/joni/ArrayCompiler;
            0   82     1         qn  Lorg/joni/ast/QuantifierNode;
            2   82     2   infinite  Z
            3   82     3  emptyInfo  I
            4   82     4       tlen  I
           12   14     5         sn  Lorg/joni/ast/StringNode;
           21   22     5    modTLen  I
           23   82     5    modTLen  I
           41   44     6         sn  Lorg/joni/ast/StringNode;
           48   51     6         sn  Lorg/joni/ast/StringNode;
           67   74     6          n  I
           69   74     7          i  I
    MethodParameters:
      Name  Flags
      qn    

  private int compileLengthOptionNode(org.joni.ast.EncloseNode);
    descriptor: (Lorg/joni/ast/EncloseNode;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.EncloseNode node
         0: .line 793
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            istore 2 /* prev */
        start local 2 // int prev
         1: .line 794
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.option:I
            putfield org.joni.Regex.options:I
         2: .line 795
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 3 /* tlen */
        start local 3 // int tlen
         3: .line 796
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iload 2 /* prev */
            putfield org.joni.Regex.options:I
         4: .line 801
            iload 3 /* tlen */
            ireturn
        end local 3 // int tlen
        end local 2 // int prev
        end local 1 // org.joni.ast.EncloseNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/joni/ArrayCompiler;
            0    5     1  node  Lorg/joni/ast/EncloseNode;
            1    5     2  prev  I
            3    5     3  tlen  I
    MethodParameters:
      Name  Flags
      node  

  protected void compileOptionNode(org.joni.ast.EncloseNode);
    descriptor: (Lorg/joni/ast/EncloseNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.EncloseNode node
         0: .line 807
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            istore 2 /* prev */
        start local 2 // int prev
         1: .line 815
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.option:I
            putfield org.joni.Regex.options:I
         2: .line 816
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
         3: .line 817
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iload 2 /* prev */
            putfield org.joni.Regex.options:I
         4: .line 822
            return
        end local 2 // int prev
        end local 1 // org.joni.ast.EncloseNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/joni/ArrayCompiler;
            0    5     1  node  Lorg/joni/ast/EncloseNode;
            1    5     2  prev  I
    MethodParameters:
      Name  Flags
      node  

  private int compileLengthEncloseNode(org.joni.ast.EncloseNode);
    descriptor: (Lorg/joni/ast/EncloseNode;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.EncloseNode node
         0: .line 825
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isOption:()Z
            ifeq 2
         1: .line 826
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual org.joni.ArrayCompiler.compileLengthOptionNode:(Lorg/joni/ast/EncloseNode;)I
            ireturn
         2: .line 830
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            ifnull 5
         3: .line 831
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* tlen */
        start local 2 // int tlen
         4: .line 832
            goto 6
        end local 2 // int tlen
         5: .line 833
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* tlen */
        start local 2 // int tlen
         6: .line 837
      StackMap locals: int
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.type:I
            lookupswitch { // 4
                    1: 7
                    4: 32
                    8: 39
                   16: 52
              default: 54
          }
         7: .line 839
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isCalled:()Z
            ifeq 18
         8: .line 840
            iconst_2
            iload 2 /* tlen */
            iadd
            iconst_2
            iadd
            iconst_2
            iadd
            iconst_1
            iadd
            istore 3 /* len */
        start local 3 // int len
         9: .line 841
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.btMemEnd:I
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokestatic org.joni.BitStatus.bsAt:(II)Z
            ifeq 14
        10: .line 842
            iload 3 /* len */
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
            ifeq 11
            iconst_2
            goto 12
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
      StackMap stack: int
        11: iconst_2
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
      StackMap stack: int int
        12: iadd
            istore 3 /* len */
        13: .line 843
            goto 56
        14: .line 844
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
            ifeq 15
            iconst_2
            goto 16
      StackMap locals:
      StackMap stack: int
        15: iconst_2
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
      StackMap stack: int int
        16: iadd
            istore 3 /* len */
        17: .line 846
            goto 56
        end local 3 // int len
      StackMap locals:
      StackMap stack:
        18: aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
            ifeq 24
        19: .line 847
            iconst_2
            istore 3 /* len */
        start local 3 // int len
        20: .line 848
            iload 3 /* len */
            iload 2 /* tlen */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.btMemEnd:I
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokestatic org.joni.BitStatus.bsAt:(II)Z
            ifeq 21
            iconst_2
            goto 22
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
      StackMap stack: int int
        21: iconst_2
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
      StackMap stack: int int int
        22: iadd
            iadd
            istore 3 /* len */
        23: .line 849
            goto 56
        end local 3 // int len
        24: .line 850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.btMemStart:I
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokestatic org.joni.BitStatus.bsAt:(II)Z
            ifeq 27
        25: .line 851
            iconst_2
            istore 3 /* len */
        start local 3 // int len
        26: .line 852
            goto 28
        end local 3 // int len
        27: .line 853
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 3 /* len */
        start local 3 // int len
        28: .line 855
      StackMap locals: int
      StackMap stack:
            iload 3 /* len */
            iload 2 /* tlen */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.btMemEnd:I
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokestatic org.joni.BitStatus.bsAt:(II)Z
            ifeq 29
            iconst_2
            goto 30
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
      StackMap stack: int int
        29: iconst_2
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int int
      StackMap stack: int int int
        30: iadd
            iadd
            istore 3 /* len */
        31: .line 857
            goto 56
        end local 3 // int len
        32: .line 860
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isStopBtSimpleRepeat:()Z
            ifeq 37
        33: .line 861
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            checkcast org.joni.ast.QuantifierNode
            astore 4 /* qn */
        start local 4 // org.joni.ast.QuantifierNode qn
        34: .line 862
            aload 0 /* this */
            aload 4 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* tlen */
        35: .line 863
            iload 2 /* tlen */
            aload 4 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            imul
            iconst_2
            iadd
            iload 2 /* tlen */
            iadd
            iconst_1
            iadd
            iconst_2
            iadd
            istore 3 /* len */
        end local 4 // org.joni.ast.QuantifierNode qn
        start local 3 // int len
        36: .line 864
            goto 56
        end local 3 // int len
        37: .line 865
      StackMap locals:
      StackMap stack:
            iconst_1
            iload 2 /* tlen */
            iadd
            iconst_1
            iadd
            istore 3 /* len */
        start local 3 // int len
        38: .line 867
            goto 56
        end local 3 // int len
        39: .line 870
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 3 /* len */
        start local 3 // int len
        40: .line 871
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ast.Node.getType:()I
            bipush 9
            if_icmpne 50
        41: .line 872
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            checkcast org.joni.ast.ListNode
            astore 4 /* x */
        start local 4 // org.joni.ast.ListNode x
        42: .line 873
            aload 0 /* this */
            aload 4 /* x */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* tlen */
        43: .line 874
            iload 3 /* len */
            iload 2 /* tlen */
            iconst_2
            iadd
            iadd
            istore 3 /* len */
        44: .line 875
            aload 4 /* x */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            ifnonnull 45
            aload 0 /* this */
            ldc "internal parser error (bug)"
            invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
        45: .line 876
      StackMap locals: int org.joni.ast.ListNode
      StackMap stack:
            aload 4 /* x */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            astore 4 /* x */
        46: .line 877
            aload 0 /* this */
            aload 4 /* x */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* tlen */
        47: .line 878
            iload 3 /* len */
            iload 2 /* tlen */
            iadd
            istore 3 /* len */
        48: .line 879
            aload 4 /* x */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            ifnull 56
            aload 0 /* this */
            ldc "invalid conditional pattern"
            invokevirtual org.joni.ArrayCompiler.newSyntaxException:(Ljava/lang/String;)V
        end local 4 // org.joni.ast.ListNode x
        49: .line 880
            goto 56
        50: .line 881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "internal parser error (bug)"
            invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
        51: .line 883
            goto 56
        end local 3 // int len
        52: .line 885
      StackMap locals:
      StackMap stack:
            iconst_3
            iload 2 /* tlen */
            iadd
            iconst_1
            iadd
            istore 3 /* len */
        start local 3 // int len
        53: .line 886
            goto 56
        end local 3 // int len
        54: .line 888
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "internal parser error (bug)"
            invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
        55: .line 889
            iconst_0
            ireturn
        start local 3 // int len
        56: .line 891
      StackMap locals: int
      StackMap stack:
            iload 3 /* len */
            ireturn
        end local 3 // int len
        end local 2 // int tlen
        end local 1 // org.joni.ast.EncloseNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   57     0  this  Lorg/joni/ArrayCompiler;
            0   57     1  node  Lorg/joni/ast/EncloseNode;
            4    5     2  tlen  I
            6   57     2  tlen  I
            9   18     3   len  I
           20   24     3   len  I
           26   27     3   len  I
           28   32     3   len  I
           36   37     3   len  I
           38   39     3   len  I
           40   52     3   len  I
           53   54     3   len  I
           56   57     3   len  I
           34   36     4    qn  Lorg/joni/ast/QuantifierNode;
           42   49     4     x  Lorg/joni/ast/ListNode;
    MethodParameters:
      Name  Flags
      node  

  protected void compileEncloseNode(org.joni.ast.EncloseNode);
    descriptor: (Lorg/joni/ast/EncloseNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.EncloseNode node
         0: .line 897
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.type:I
            lookupswitch { // 4
                    1: 1
                    4: 50
                    8: 64
                   16: 82
              default: 89
          }
         1: .line 899
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isCalled:()Z
            ifeq 18
         2: .line 900
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
         3: .line 901
            aload 0 /* this */
            bipush 88
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         4: .line 902
            aload 1 /* node */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.codeLength:I
            iconst_1
            iadd
            iconst_2
            iadd
            putfield org.joni.ast.EncloseNode.callAddr:I
         5: .line 903
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.setAddrFixed:()V
         6: .line 904
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.callAddr:I
            invokevirtual org.joni.ArrayCompiler.addAbsAddr:(I)V
         7: .line 905
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* len */
        start local 2 // int len
         8: .line 906
            iinc 2 /* len */ 3
         9: .line 907
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.btMemEnd:I
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokestatic org.joni.BitStatus.bsAt:(II)Z
            ifeq 14
        10: .line 908
            iload 2 /* len */
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
            ifeq 11
            iconst_2
            goto 12
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int
      StackMap stack: int
        11: iconst_2
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int
      StackMap stack: int int
        12: iadd
            istore 2 /* len */
        13: .line 909
            goto 17
        14: .line 910
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
            ifeq 15
            iconst_2
            goto 16
      StackMap locals:
      StackMap stack: int
        15: iconst_2
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode int
      StackMap stack: int int
        16: iadd
            istore 2 /* len */
        17: .line 912
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 61
            iload 2 /* len */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        end local 2 // int len
        18: .line 915
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.btMemStart:I
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokestatic org.joni.BitStatus.bsAt:(II)Z
            ifeq 22
        19: .line 916
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
        20: .line 917
            aload 0 /* this */
            bipush 54
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        21: .line 918
            goto 23
        22: .line 919
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 53
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        23: .line 922
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
        24: .line 923
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        25: .line 925
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isCalled:()Z
            ifeq 37
        26: .line 926
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.btMemEnd:I
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokestatic org.joni.BitStatus.bsAt:(II)Z
            ifeq 31
        27: .line 927
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
            ifeq 28
            bipush 56
            goto 29
      StackMap locals:
      StackMap stack: org.joni.ArrayCompiler
        28: bipush 55
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode
      StackMap stack: org.joni.ArrayCompiler int
        29: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        30: .line 928
            goto 34
        31: .line 929
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
            ifeq 32
            bipush 58
            goto 33
      StackMap locals:
      StackMap stack: org.joni.ArrayCompiler
        32: bipush 57
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.EncloseNode
      StackMap stack: org.joni.ArrayCompiler int
        33: invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        34: .line 931
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
        35: .line 932
            aload 0 /* this */
            bipush 89
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        36: .line 933
            goto 90
      StackMap locals:
      StackMap stack:
        37: aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isRecursion:()Z
            ifeq 44
        38: .line 934
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.btMemEnd:I
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokestatic org.joni.BitStatus.bsAt:(II)Z
            ifeq 41
        39: .line 935
            aload 0 /* this */
            bipush 56
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        40: .line 936
            goto 42
        41: .line 937
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 58
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        42: .line 939
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
        43: .line 940
            goto 90
        44: .line 941
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.btMemEnd:I
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokestatic org.joni.BitStatus.bsAt:(II)Z
            ifeq 47
        45: .line 942
            aload 0 /* this */
            bipush 55
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        46: .line 943
            goto 48
        47: .line 944
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 57
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        48: .line 946
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
        49: .line 948
            goto 90
        50: .line 951
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
        51: .line 952
            aload 1 /* node */
            invokevirtual org.joni.ast.EncloseNode.isStopBtSimpleRepeat:()Z
            ifeq 60
        52: .line 953
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            checkcast org.joni.ast.QuantifierNode
            astore 3 /* qn */
        start local 3 // org.joni.ast.QuantifierNode qn
        53: .line 955
            aload 0 /* this */
            aload 3 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            aload 3 /* qn */
            getfield org.joni.ast.QuantifierNode.lower:I
            invokevirtual org.joni.ArrayCompiler.compileTreeNTimes:(Lorg/joni/ast/Node;I)V
        54: .line 957
            aload 0 /* this */
            aload 3 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* len */
        start local 2 // int len
        55: .line 958
            aload 0 /* this */
            bipush 62
            iload 2 /* len */
            iconst_1
            iadd
            iconst_2
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        56: .line 959
            aload 0 /* this */
            aload 3 /* qn */
            getfield org.joni.ast.QuantifierNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        57: .line 960
            aload 0 /* this */
            bipush 63
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        58: .line 961
            aload 0 /* this */
            bipush 61
            iconst_2
            iload 2 /* len */
            iadd
            iconst_1
            iadd
            iconst_2
            iadd
            ineg
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        end local 3 // org.joni.ast.QuantifierNode qn
        59: .line 962
            goto 90
        end local 2 // int len
        60: .line 963
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 80
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        61: .line 964
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        62: .line 965
            aload 0 /* this */
            bipush 81
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        63: .line 967
            goto 90
        64: .line 970
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 90
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        65: .line 971
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.regNum:I
            invokevirtual org.joni.ArrayCompiler.addMemNum:(I)V
        66: .line 972
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ast.Node.getType:()I
            bipush 9
            if_icmpne 80
        67: .line 973
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            checkcast org.joni.ast.ListNode
            astore 3 /* x */
        start local 3 // org.joni.ast.ListNode x
        68: .line 974
            aload 0 /* this */
            aload 3 /* x */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* len */
        start local 2 // int len
        69: .line 975
            aload 3 /* x */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            ifnonnull 70
            aload 0 /* this */
            ldc "internal parser error (bug)"
            invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
        70: .line 976
      StackMap locals: int org.joni.ast.ListNode
      StackMap stack:
            aload 3 /* x */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            astore 3 /* x */
        71: .line 977
            aload 0 /* this */
            aload 3 /* x */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 4 /* len2 */
        start local 4 // int len2
        72: .line 978
            aload 3 /* x */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            ifnull 73
            aload 0 /* this */
            ldc "invalid conditional pattern"
            invokevirtual org.joni.ArrayCompiler.newSyntaxException:(Ljava/lang/String;)V
        73: .line 979
      StackMap locals: int
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            checkcast org.joni.ast.ListNode
            astore 3 /* x */
        74: .line 980
            aload 0 /* this */
            iload 2 /* len */
            iconst_2
            iadd
            invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
        75: .line 981
            aload 0 /* this */
            aload 3 /* x */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        76: .line 982
            aload 0 /* this */
            bipush 61
            iload 4 /* len2 */
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        77: .line 983
            aload 3 /* x */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            astore 3 /* x */
        78: .line 984
            aload 0 /* this */
            aload 3 /* x */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        end local 4 // int len2
        end local 3 // org.joni.ast.ListNode x
        79: .line 985
            goto 90
        end local 2 // int len
        80: .line 986
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "internal parser error (bug)"
            invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
        81: .line 988
            goto 90
        82: .line 991
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
        83: .line 992
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* len */
        start local 2 // int len
        84: .line 993
            aload 0 /* this */
            bipush 85
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        85: .line 994
            aload 0 /* this */
            bipush 86
            iload 2 /* len */
            iconst_1
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        86: .line 995
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.EncloseNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        87: .line 996
            aload 0 /* this */
            bipush 87
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        88: .line 997
            goto 90
        end local 2 // int len
        89: .line 1000
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "internal parser error (bug)"
            invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
        90: .line 1003
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.joni.ast.EncloseNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   91     0  this  Lorg/joni/ArrayCompiler;
            0   91     1  node  Lorg/joni/ast/EncloseNode;
            8   18     2   len  I
           55   60     2   len  I
           69   80     2   len  I
           84   89     2   len  I
           53   59     3    qn  Lorg/joni/ast/QuantifierNode;
           68   79     3     x  Lorg/joni/ast/ListNode;
           72   79     4  len2  I
    MethodParameters:
      Name  Flags
      node  

  private int compileLengthAnchorNode(org.joni.ast.AnchorNode);
    descriptor: (Lorg/joni/ast/AnchorNode;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.AnchorNode node
         0: .line 1007
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            ifnull 3
         1: .line 1008
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* tlen */
        start local 2 // int tlen
         2: .line 1009
            goto 4
        end local 2 // int tlen
         3: .line 1010
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* tlen */
        start local 2 // int tlen
         4: .line 1014
      StackMap locals: int
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.type:I
            lookupswitch { // 4
                 1024: 5
                 2048: 7
                 4096: 9
                 8192: 11
              default: 13
          }
         5: .line 1016
      StackMap locals:
      StackMap stack:
            iconst_1
            iload 2 /* tlen */
            iadd
            iconst_1
            iadd
            istore 3 /* len */
        start local 3 // int len
         6: .line 1017
            goto 14
        end local 3 // int len
         7: .line 1020
      StackMap locals:
      StackMap stack:
            iconst_2
            iload 2 /* tlen */
            iadd
            iconst_1
            iadd
            istore 3 /* len */
        start local 3 // int len
         8: .line 1021
            goto 14
        end local 3 // int len
         9: .line 1024
      StackMap locals:
      StackMap stack:
            iconst_2
            iload 2 /* tlen */
            iadd
            istore 3 /* len */
        start local 3 // int len
        10: .line 1025
            goto 14
        end local 3 // int len
        11: .line 1028
      StackMap locals:
      StackMap stack:
            iconst_3
            iload 2 /* tlen */
            iadd
            iconst_1
            iadd
            istore 3 /* len */
        start local 3 // int len
        12: .line 1029
            goto 14
        end local 3 // int len
        13: .line 1032
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* len */
        start local 3 // int len
        14: .line 1035
      StackMap locals: int
      StackMap stack:
            iload 3 /* len */
            ireturn
        end local 3 // int len
        end local 2 // int tlen
        end local 1 // org.joni.ast.AnchorNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/joni/ArrayCompiler;
            0   15     1  node  Lorg/joni/ast/AnchorNode;
            2    3     2  tlen  I
            4   15     2  tlen  I
            6    7     3   len  I
            8    9     3   len  I
           10   11     3   len  I
           12   13     3   len  I
           14   15     3   len  I
    MethodParameters:
      Name  Flags
      node  

  protected void compileAnchorNode(org.joni.ast.AnchorNode);
    descriptor: (Lorg/joni/ast/AnchorNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.AnchorNode node
         0: .line 1043
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.type:I
            lookupswitch { // 15
                    1: 1
                    2: 3
                    4: 6
                    8: 2
                   16: 5
                   32: 4
                   64: 7
                  128: 12
                  256: 17
                  512: 22
                 1024: 29
                 2048: 34
                 4096: 40
                 8192: 49
                65536: 27
              default: 61
          }
         1: .line 1044
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 40
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
            goto 62
         2: .line 1045
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 41
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
            goto 62
         3: .line 1046
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 42
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
            goto 62
         4: .line 1047
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 43
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
            goto 62
         5: .line 1048
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 44
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
            goto 62
         6: .line 1049
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 45
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
            goto 62
         7: .line 1052
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.asciiRange:Z
            ifeq 10
         8: .line 1053
            aload 0 /* this */
            bipush 36
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         9: .line 1054
            goto 62
        10: .line 1055
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 30
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        11: .line 1057
            goto 62
        12: .line 1060
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.asciiRange:Z
            ifeq 15
        13: .line 1061
            aload 0 /* this */
            bipush 37
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        14: .line 1062
            goto 62
        15: .line 1063
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 31
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        16: .line 1065
            goto 62
        17: .line 1069
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.asciiRange:Z
            ifeq 20
        18: .line 1070
            aload 0 /* this */
            bipush 38
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        19: .line 1071
            goto 62
        20: .line 1072
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 32
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        21: .line 1075
            goto 62
        22: .line 1079
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.asciiRange:Z
            ifeq 25
        23: .line 1080
            aload 0 /* this */
            bipush 39
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        24: .line 1081
            goto 62
        25: .line 1082
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 33
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        26: .line 1085
            goto 62
        27: .line 1088
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 59
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        28: .line 1089
            goto 62
        29: .line 1092
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
        30: .line 1093
            aload 0 /* this */
            bipush 76
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        31: .line 1094
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        32: .line 1095
            aload 0 /* this */
            bipush 77
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        33: .line 1096
            goto 62
        34: .line 1099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
        35: .line 1100
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* len */
        start local 2 // int len
        36: .line 1101
            aload 0 /* this */
            bipush 78
            iload 2 /* len */
            iconst_1
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        37: .line 1102
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        38: .line 1103
            aload 0 /* this */
            bipush 79
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        39: .line 1104
            goto 62
        end local 2 // int len
        40: .line 1107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 82
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        41: .line 1108
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.charLength:I
            ifge 45
        42: .line 1109
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;)I
            istore 3 /* n */
        start local 3 // int n
        43: .line 1110
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
            getfield org.joni.Analyser.returnCode:I
            ifeq 46
            aload 0 /* this */
            ldc "invalid pattern in look-behind"
            invokevirtual org.joni.ArrayCompiler.newSyntaxException:(Ljava/lang/String;)V
        44: .line 1111
            goto 46
        end local 3 // int n
        45: .line 1112
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.charLength:I
            istore 3 /* n */
        start local 3 // int n
        46: .line 1114
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.AnchorNode top int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* n */
            invokevirtual org.joni.ArrayCompiler.addLength:(I)V
        47: .line 1115
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        48: .line 1116
            goto 62
        end local 3 // int n
        49: .line 1119
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.AnchorNode
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            iconst_1
            putfield org.joni.Regex.requireStack:Z
        50: .line 1120
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            istore 2 /* len */
        start local 2 // int len
        51: .line 1121
            aload 0 /* this */
            bipush 83
            iload 2 /* len */
            iconst_1
            iadd
            invokevirtual org.joni.ArrayCompiler.addOpcodeRelAddr:(II)V
        52: .line 1122
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.charLength:I
            ifge 56
        53: .line 1123
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.Analyser.getCharLengthTree:(Lorg/joni/ast/Node;)I
            istore 3 /* n */
        start local 3 // int n
        54: .line 1124
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.analyser:Lorg/joni/Analyser;
            getfield org.joni.Analyser.returnCode:I
            ifeq 57
            aload 0 /* this */
            ldc "invalid pattern in look-behind"
            invokevirtual org.joni.ArrayCompiler.newSyntaxException:(Ljava/lang/String;)V
        55: .line 1125
            goto 57
        end local 3 // int n
        56: .line 1126
      StackMap locals: int
      StackMap stack:
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.charLength:I
            istore 3 /* n */
        start local 3 // int n
        57: .line 1128
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* n */
            invokevirtual org.joni.ArrayCompiler.addLength:(I)V
        58: .line 1129
            aload 0 /* this */
            aload 1 /* node */
            getfield org.joni.ast.AnchorNode.target:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileTree:(Lorg/joni/ast/Node;)V
        59: .line 1130
            aload 0 /* this */
            bipush 84
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
        60: .line 1131
            goto 62
        end local 3 // int n
        end local 2 // int len
        61: .line 1134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "internal parser error (bug)"
            invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
        62: .line 1136
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.joni.ast.AnchorNode node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   63     0  this  Lorg/joni/ArrayCompiler;
            0   63     1  node  Lorg/joni/ast/AnchorNode;
           36   40     2   len  I
           51   61     2   len  I
           43   45     3     n  I
           46   49     3     n  I
           54   56     3     n  I
           57   61     3     n  I
    MethodParameters:
      Name  Flags
      node  

  private int compileLengthTree(org.joni.ast.Node);
    descriptor: (Lorg/joni/ast/Node;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // org.joni.ast.Node node
         0: .line 1139
            iconst_0
            istore 2 /* len */
        start local 2 // int len
         1: .line 1141
            aload 1 /* node */
            invokevirtual org.joni.ast.Node.getType:()I
            tableswitch { // 0 - 10
                    0: 13
                    1: 19
                    2: 21
                    3: 21
                    4: 23
                    5: 39
                    6: 41
                    7: 43
                    8: 2
                    9: 6
                   10: 37
              default: 45
          }
         2: .line 1143
      StackMap locals: int
      StackMap stack:
            aload 1 /* node */
            checkcast org.joni.ast.ListNode
            astore 3 /* lin */
        start local 3 // org.joni.ast.ListNode lin
         3: .line 1145
      StackMap locals: org.joni.ast.ListNode
      StackMap stack:
            iload 2 /* len */
            aload 0 /* this */
            aload 3 /* lin */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            iadd
            istore 2 /* len */
         4: .line 1146
            aload 3 /* lin */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            dup
            astore 3 /* lin */
            ifnonnull 3
         5: .line 1147
            goto 46
        end local 3 // org.joni.ast.ListNode lin
         6: .line 1150
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            checkcast org.joni.ast.ListNode
            astore 4 /* aln */
        start local 4 // org.joni.ast.ListNode aln
         7: .line 1151
            iconst_0
            istore 5 /* n */
        start local 5 // int n
         8: .line 1153
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int top org.joni.ast.ListNode int
      StackMap stack:
            iload 2 /* len */
            aload 0 /* this */
            aload 4 /* aln */
            getfield org.joni.ast.ListNode.value:Lorg/joni/ast/Node;
            invokevirtual org.joni.ArrayCompiler.compileLengthTree:(Lorg/joni/ast/Node;)I
            iadd
            istore 2 /* len */
         9: .line 1154
            iinc 5 /* n */ 1
        10: .line 1155
            aload 4 /* aln */
            getfield org.joni.ast.ListNode.tail:Lorg/joni/ast/ListNode;
            dup
            astore 4 /* aln */
            ifnonnull 8
        11: .line 1156
            iload 2 /* len */
            iconst_4
            iload 5 /* n */
            iconst_1
            isub
            imul
            iadd
            istore 2 /* len */
        12: .line 1157
            goto 46
        end local 5 // int n
        end local 4 // org.joni.ast.ListNode aln
        13: .line 1160
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int
      StackMap stack:
            aload 1 /* node */
            checkcast org.joni.ast.StringNode
            astore 6 /* sn */
        start local 6 // org.joni.ast.StringNode sn
        14: .line 1161
            aload 6 /* sn */
            invokevirtual org.joni.ast.StringNode.isRaw:()Z
            ifeq 17
        15: .line 1162
            aload 0 /* this */
            aload 6 /* sn */
            invokevirtual org.joni.ArrayCompiler.compileLengthStringRawNode:(Lorg/joni/ast/StringNode;)I
            istore 2 /* len */
        16: .line 1163
            goto 46
        17: .line 1164
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int top top top org.joni.ast.StringNode
      StackMap stack:
            aload 0 /* this */
            aload 6 /* sn */
            invokevirtual org.joni.ArrayCompiler.compileLengthStringNode:(Lorg/joni/ast/Node;)I
            istore 2 /* len */
        18: .line 1166
            goto 46
        end local 6 // org.joni.ast.StringNode sn
        19: .line 1169
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            checkcast org.joni.ast.CClassNode
            invokevirtual org.joni.ArrayCompiler.compileLengthCClassNode:(Lorg/joni/ast/CClassNode;)I
            istore 2 /* len */
        20: .line 1170
            goto 46
        21: .line 1174
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* len */
        22: .line 1175
            goto 46
        23: .line 1178
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            checkcast org.joni.ast.BackRefNode
            astore 7 /* br */
        start local 7 // org.joni.ast.BackRefNode br
        24: .line 1180
            aload 7 /* br */
            invokevirtual org.joni.ast.BackRefNode.isNestLevel:()Z
            ifeq 29
        25: .line 1181
            iconst_4
        26: .line 1182
            iconst_1
            aload 7 /* br */
            getfield org.joni.ast.BackRefNode.backNum:I
            imul
        27: .line 1181
            iadd
            istore 2 /* len */
        28: .line 1183
            goto 46
        29: .line 1184
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int top top top top org.joni.ast.BackRefNode
      StackMap stack:
            aload 7 /* br */
            getfield org.joni.ast.BackRefNode.backNum:I
            iconst_1
            if_icmpne 35
        30: .line 1185
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.options:I
            invokestatic org.joni.Option.isIgnoreCase:(I)Z
            ifne 32
            aload 7 /* br */
            getfield org.joni.ast.BackRefNode.back:[I
            iconst_0
            iaload
            iconst_2
            if_icmpgt 32
        31: .line 1186
            iconst_1
            goto 33
      StackMap locals:
      StackMap stack:
        32: iconst_2
        33: .line 1185
      StackMap locals:
      StackMap stack: int
            istore 2 /* len */
        34: .line 1187
            goto 46
        35: .line 1188
      StackMap locals:
      StackMap stack:
            iconst_2
            iconst_1
            aload 7 /* br */
            getfield org.joni.ast.BackRefNode.backNum:I
            imul
            iadd
            istore 2 /* len */
        36: .line 1191
            goto 46
        end local 7 // org.joni.ast.BackRefNode br
        37: .line 1195
      StackMap locals: org.joni.ArrayCompiler org.joni.ast.Node int
      StackMap stack:
            iconst_2
            istore 2 /* len */
        38: .line 1196
            goto 46
        39: .line 1204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            checkcast org.joni.ast.QuantifierNode
            invokevirtual org.joni.ArrayCompiler.compileNonCECLengthQuantifierNode:(Lorg/joni/ast/QuantifierNode;)I
            istore 2 /* len */
        40: .line 1206
            goto 46
        41: .line 1209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            checkcast org.joni.ast.EncloseNode
            invokevirtual org.joni.ArrayCompiler.compileLengthEncloseNode:(Lorg/joni/ast/EncloseNode;)I
            istore 2 /* len */
        42: .line 1210
            goto 46
        43: .line 1213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            checkcast org.joni.ast.AnchorNode
            invokevirtual org.joni.ArrayCompiler.compileLengthAnchorNode:(Lorg/joni/ast/AnchorNode;)I
            istore 2 /* len */
        44: .line 1214
            goto 46
        45: .line 1217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "internal parser error (bug)"
            invokevirtual org.joni.ArrayCompiler.newInternalException:(Ljava/lang/String;)V
        46: .line 1220
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            ireturn
        end local 2 // int len
        end local 1 // org.joni.ast.Node node
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   47     0  this  Lorg/joni/ArrayCompiler;
            0   47     1  node  Lorg/joni/ast/Node;
            1   47     2   len  I
            3    6     3   lin  Lorg/joni/ast/ListNode;
            7   13     4   aln  Lorg/joni/ast/ListNode;
            8   13     5     n  I
           14   19     6    sn  Lorg/joni/ast/StringNode;
           24   37     7    br  Lorg/joni/ast/BackRefNode;
    MethodParameters:
      Name  Flags
      node  

  private void ensure(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int size
         0: .line 1224
            iload 1 /* size */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            arraylength
            if_icmplt 8
         1: .line 1225
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            arraylength
            iconst_1
            ishl
            istore 2 /* length */
        start local 2 // int length
         2: .line 1226
            goto 4
      StackMap locals: int
      StackMap stack:
         3: iload 2 /* length */
            iconst_1
            ishl
            istore 2 /* length */
      StackMap locals:
      StackMap stack:
         4: iload 2 /* length */
            iload 1 /* size */
            if_icmple 3
         5: .line 1227
            iload 2 /* length */
            newarray 10
            astore 3 /* tmp */
        start local 3 // int[] tmp
         6: .line 1228
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            iconst_0
            aload 3 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 1229
            aload 0 /* this */
            aload 3 /* tmp */
            putfield org.joni.ArrayCompiler.code:[I
        end local 3 // int[] tmp
        end local 2 // int length
         8: .line 1231
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int size
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/joni/ArrayCompiler;
            0    9     1    size  I
            2    8     2  length  I
            6    8     3     tmp  [I
    MethodParameters:
      Name  Flags
      size  

  private void addInt(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int i
         0: .line 1234
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.codeLength:I
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            arraylength
            if_icmplt 4
         1: .line 1235
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            arraylength
            iconst_1
            ishl
            newarray 10
            astore 2 /* tmp */
        start local 2 // int[] tmp
         2: .line 1236
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            iconst_0
            aload 2 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 1237
            aload 0 /* this */
            aload 2 /* tmp */
            putfield org.joni.ArrayCompiler.code:[I
        end local 2 // int[] tmp
         4: .line 1239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            aload 0 /* this */
            dup
            getfield org.joni.ArrayCompiler.codeLength:I
            dup_x1
            iconst_1
            iadd
            putfield org.joni.ArrayCompiler.codeLength:I
            iload 1 /* i */
            iastore
         5: .line 1240
            return
        end local 1 // int i
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/joni/ArrayCompiler;
            0    6     1     i  I
            2    4     2   tmp  [I
    MethodParameters:
      Name  Flags
      i     

  void setInt(int, int);
    descriptor: (II)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int i
        start local 2 // int offset
         0: .line 1243
            aload 0 /* this */
            iload 2 /* offset */
            invokevirtual org.joni.ArrayCompiler.ensure:(I)V
         1: .line 1244
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.regex:Lorg/joni/Regex;
            getfield org.joni.Regex.code:[I
            iload 2 /* offset */
            iload 1 /* i */
            iastore
         2: .line 1245
            return
        end local 2 // int offset
        end local 1 // int i
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/joni/ArrayCompiler;
            0    3     1       i  I
            0    3     2  offset  I
    MethodParameters:
        Name  Flags
      i       
      offset  

  private void addBytes(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int length
         0: .line 1248
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.codeLength:I
            iload 3 /* length */
            iadd
            invokevirtual org.joni.ArrayCompiler.ensure:(I)V
         1: .line 1249
            iload 2 /* p */
            iload 3 /* length */
            iadd
            istore 4 /* end */
        start local 4 // int end
         2: .line 1251
            goto 4
      StackMap locals: int
      StackMap stack:
         3: aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            aload 0 /* this */
            dup
            getfield org.joni.ArrayCompiler.codeLength:I
            dup_x1
            iconst_1
            iadd
            putfield org.joni.ArrayCompiler.codeLength:I
            aload 1 /* bytes */
            iload 2 /* p */
            iinc 2 /* p */ 1
            baload
            iastore
      StackMap locals:
      StackMap stack:
         4: iload 2 /* p */
            iload 4 /* end */
            if_icmplt 3
         5: .line 1252
            return
        end local 4 // int end
        end local 3 // int length
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/joni/ArrayCompiler;
            0    6     1   bytes  [B
            0    6     2       p  I
            0    6     3  length  I
            2    6     4     end  I
    MethodParameters:
        Name  Flags
      bytes   
      p       
      length  

  private void addInts(int[], int);
    descriptor: ([II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int[] ints
        start local 2 // int length
         0: .line 1255
            aload 0 /* this */
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.codeLength:I
            iload 2 /* length */
            iadd
            invokevirtual org.joni.ArrayCompiler.ensure:(I)V
         1: .line 1256
            aload 1 /* ints */
            iconst_0
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.code:[I
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.codeLength:I
            iload 2 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 1257
            aload 0 /* this */
            dup
            getfield org.joni.ArrayCompiler.codeLength:I
            iload 2 /* length */
            iadd
            putfield org.joni.ArrayCompiler.codeLength:I
         3: .line 1258
            return
        end local 2 // int length
        end local 1 // int[] ints
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/joni/ArrayCompiler;
            0    4     1    ints  [I
            0    4     2  length  I
    MethodParameters:
        Name  Flags
      ints    
      length  

  private void addOpcode(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int opcode
         0: .line 1261
            aload 0 /* this */
            iload 1 /* opcode */
            invokevirtual org.joni.ArrayCompiler.addInt:(I)V
         1: .line 1262
            return
        end local 1 // int opcode
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/joni/ArrayCompiler;
            0    2     1  opcode  I
    MethodParameters:
        Name  Flags
      opcode  

  private void addStateCheckNum(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int num
         0: .line 1265
            aload 0 /* this */
            iload 1 /* num */
            invokevirtual org.joni.ArrayCompiler.addInt:(I)V
         1: .line 1266
            return
        end local 1 // int num
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ArrayCompiler;
            0    2     1   num  I
    MethodParameters:
      Name  Flags
      num   

  private void addRelAddr(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int addr
         0: .line 1269
            aload 0 /* this */
            iload 1 /* addr */
            invokevirtual org.joni.ArrayCompiler.addInt:(I)V
         1: .line 1270
            return
        end local 1 // int addr
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ArrayCompiler;
            0    2     1  addr  I
    MethodParameters:
      Name  Flags
      addr  

  private void addAbsAddr(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int addr
         0: .line 1273
            aload 0 /* this */
            iload 1 /* addr */
            invokevirtual org.joni.ArrayCompiler.addInt:(I)V
         1: .line 1274
            return
        end local 1 // int addr
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ArrayCompiler;
            0    2     1  addr  I
    MethodParameters:
      Name  Flags
      addr  

  private void addLength(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int length
         0: .line 1277
            aload 0 /* this */
            iload 1 /* length */
            invokevirtual org.joni.ArrayCompiler.addInt:(I)V
         1: .line 1278
            return
        end local 1 // int length
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/joni/ArrayCompiler;
            0    2     1  length  I
    MethodParameters:
        Name  Flags
      length  

  private void addMemNum(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int num
         0: .line 1281
            aload 0 /* this */
            iload 1 /* num */
            invokevirtual org.joni.ArrayCompiler.addInt:(I)V
         1: .line 1282
            return
        end local 1 // int num
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ArrayCompiler;
            0    2     1   num  I
    MethodParameters:
      Name  Flags
      num   

  private void addOption(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int option
         0: .line 1285
            aload 0 /* this */
            iload 1 /* option */
            invokevirtual org.joni.ArrayCompiler.addInt:(I)V
         1: .line 1286
            return
        end local 1 // int option
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/joni/ArrayCompiler;
            0    2     1  option  I
    MethodParameters:
        Name  Flags
      option  

  private void addOpcodeRelAddr(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int opcode
        start local 2 // int addr
         0: .line 1289
            aload 0 /* this */
            iload 1 /* opcode */
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         1: .line 1290
            aload 0 /* this */
            iload 2 /* addr */
            invokevirtual org.joni.ArrayCompiler.addRelAddr:(I)V
         2: .line 1291
            return
        end local 2 // int addr
        end local 1 // int opcode
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/joni/ArrayCompiler;
            0    3     1  opcode  I
            0    3     2    addr  I
    MethodParameters:
        Name  Flags
      opcode  
      addr    

  private void addOpcodeOption(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // int opcode
        start local 2 // int option
         0: .line 1294
            aload 0 /* this */
            iload 1 /* opcode */
            invokevirtual org.joni.ArrayCompiler.addOpcode:(I)V
         1: .line 1295
            aload 0 /* this */
            iload 2 /* option */
            invokevirtual org.joni.ArrayCompiler.addOption:(I)V
         2: .line 1296
            return
        end local 2 // int option
        end local 1 // int opcode
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/joni/ArrayCompiler;
            0    3     1  opcode  I
            0    3     2  option  I
    MethodParameters:
        Name  Flags
      opcode  
      option  

  private void addTemplate(byte[]);
    descriptor: ([B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.joni.ArrayCompiler this
        start local 1 // byte[] bytes
         0: .line 1299
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.templateNum:I
            ifne 3
         1: .line 1300
            aload 0 /* this */
            iconst_2
            anewarray byte[]
            putfield org.joni.ArrayCompiler.templates:[[B
         2: .line 1301
            goto 7
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield org.joni.ArrayCompiler.templateNum:I
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.templates:[[B
            arraylength
            if_icmpne 7
         4: .line 1302
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.templateNum:I
            iconst_2
            imul
            anewarray byte[]
            astore 2 /* tmp */
        start local 2 // byte[][] tmp
         5: .line 1303
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.templates:[[B
            iconst_0
            aload 2 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.templateNum:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 1304
            aload 0 /* this */
            aload 2 /* tmp */
            putfield org.joni.ArrayCompiler.templates:[[B
        end local 2 // byte[][] tmp
         7: .line 1306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ArrayCompiler.templates:[[B
            aload 0 /* this */
            dup
            getfield org.joni.ArrayCompiler.templateNum:I
            dup_x1
            iconst_1
            iadd
            putfield org.joni.ArrayCompiler.templateNum:I
            aload 1 /* bytes */
            aastore
         8: .line 1307
            return
        end local 1 // byte[] bytes
        end local 0 // org.joni.ArrayCompiler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/joni/ArrayCompiler;
            0    9     1  bytes  [B
            5    7     2    tmp  [[B
    MethodParameters:
       Name  Flags
      bytes  
}
SourceFile: "ArrayCompiler.java"