public final class jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment
  super_class: java.lang.Object
{
  private static final int SCANENV_MEMNODES_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  int option;
    descriptor: I
    flags: (0x0000) 

  final int caseFoldFlag;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  public final jdk.nashorn.internal.runtime.regexp.joni.Syntax syntax;
    descriptor: Ljdk/nashorn/internal/runtime/regexp/joni/Syntax;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  int captureHistory;
    descriptor: I
    flags: (0x0000) 

  int btMemStart;
    descriptor: I
    flags: (0x0000) 

  int btMemEnd;
    descriptor: I
    flags: (0x0000) 

  int backrefedMem;
    descriptor: I
    flags: (0x0000) 

  public final jdk.nashorn.internal.runtime.regexp.joni.Regex reg;
    descriptor: Ljdk/nashorn/internal/runtime/regexp/joni/Regex;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public int numMem;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public jdk.nashorn.internal.runtime.regexp.joni.ast.Node[] memNodes;
    descriptor: [Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
    flags: (0x0001) ACC_PUBLIC

  public void <init>(jdk.nashorn.internal.runtime.regexp.joni.Regex, jdk.nashorn.internal.runtime.regexp.joni.Syntax);
    descriptor: (Ljdk/nashorn/internal/runtime/regexp/joni/Regex;Ljdk/nashorn/internal/runtime/regexp/joni/Syntax;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
        start local 1 // jdk.nashorn.internal.runtime.regexp.joni.Regex regex
        start local 2 // jdk.nashorn.internal.runtime.regexp.joni.Syntax syntax
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            aload 1 /* regex */
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.reg:Ljdk/nashorn/internal/runtime/regexp/joni/Regex;
         2: .line 49
            aload 0 /* this */
            aload 1 /* regex */
            getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.options:I
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.option:I
         3: .line 50
            aload 0 /* this */
            aload 1 /* regex */
            getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.caseFoldFlag:I
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.caseFoldFlag:I
         4: .line 51
            aload 0 /* this */
            aload 2 /* syntax */
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.syntax:Ljdk/nashorn/internal/runtime/regexp/joni/Syntax;
         5: .line 52
            return
        end local 2 // jdk.nashorn.internal.runtime.regexp.joni.Syntax syntax
        end local 1 // jdk.nashorn.internal.runtime.regexp.joni.Regex regex
        end local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljdk/nashorn/internal/runtime/regexp/joni/ScanEnvironment;
            0    6     1   regex  Ljdk/nashorn/internal/runtime/regexp/joni/Regex;
            0    6     2  syntax  Ljdk/nashorn/internal/runtime/regexp/joni/Syntax;
    MethodParameters:
        Name  Flags
      regex   final
      syntax  final

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
         0: .line 55
            aload 0 /* this */
            invokestatic jdk.nashorn.internal.runtime.regexp.joni.BitStatus.bsClear:()I
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.captureHistory:I
         1: .line 56
            aload 0 /* this */
            invokestatic jdk.nashorn.internal.runtime.regexp.joni.BitStatus.bsClear:()I
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.btMemStart:I
         2: .line 57
            aload 0 /* this */
            invokestatic jdk.nashorn.internal.runtime.regexp.joni.BitStatus.bsClear:()I
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.btMemEnd:I
         3: .line 58
            aload 0 /* this */
            invokestatic jdk.nashorn.internal.runtime.regexp.joni.BitStatus.bsClear:()I
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.backrefedMem:I
         4: .line 60
            aload 0 /* this */
            iconst_0
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.numMem:I
         5: .line 61
            aload 0 /* this */
            aconst_null
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.memNodes:[Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
         6: .line 62
            return
        end local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/nashorn/internal/runtime/regexp/joni/ScanEnvironment;

  public int addMemEntry();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
         0: .line 65
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.numMem:I
            ldc 32768
            if_icmplt 2
         1: .line 66
            new jdk.nashorn.internal.runtime.regexp.joni.exception.InternalException
            dup
            ldc "too many capture groups"
            invokespecial jdk.nashorn.internal.runtime.regexp.joni.exception.InternalException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.numMem:I
            dup_x1
            iconst_1
            iadd
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.numMem:I
            ifne 5
         3: .line 69
            aload 0 /* this */
            bipush 8
            anewarray jdk.nashorn.internal.runtime.regexp.joni.ast.Node
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.memNodes:[Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
         4: .line 70
            goto 9
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.numMem:I
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.memNodes:[Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
            arraylength
            if_icmplt 9
         6: .line 71
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.memNodes:[Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
            arraylength
            iconst_1
            ishl
            anewarray jdk.nashorn.internal.runtime.regexp.joni.ast.Node
            astore 1 /* tmp */
        start local 1 // jdk.nashorn.internal.runtime.regexp.joni.ast.Node[] tmp
         7: .line 72
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.memNodes:[Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
            iconst_0
            aload 1 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.memNodes:[Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 73
            aload 0 /* this */
            aload 1 /* tmp */
            putfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.memNodes:[Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
        end local 1 // jdk.nashorn.internal.runtime.regexp.joni.ast.Node[] tmp
         9: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.numMem:I
            ireturn
        end local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljdk/nashorn/internal/runtime/regexp/joni/ScanEnvironment;
            7    9     1   tmp  [Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;

  public void setMemNode(int, jdk.nashorn.internal.runtime.regexp.joni.ast.Node);
    descriptor: (ILjdk/nashorn/internal/runtime/regexp/joni/ast/Node;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
        start local 1 // int num
        start local 2 // jdk.nashorn.internal.runtime.regexp.joni.ast.Node node
         0: .line 80
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.numMem:I
            iload 1 /* num */
            if_icmplt 3
         1: .line 81
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.memNodes:[Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
            iload 1 /* num */
            aload 2 /* node */
            aastore
         2: .line 82
            goto 4
         3: .line 83
      StackMap locals:
      StackMap stack:
            new jdk.nashorn.internal.runtime.regexp.joni.exception.InternalException
            dup
            ldc "internal parser error (bug)"
            invokespecial jdk.nashorn.internal.runtime.regexp.joni.exception.InternalException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 85
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.nashorn.internal.runtime.regexp.joni.ast.Node node
        end local 1 // int num
        end local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/nashorn/internal/runtime/regexp/joni/ScanEnvironment;
            0    5     1   num  I
            0    5     2  node  Ljdk/nashorn/internal/runtime/regexp/joni/ast/Node;
    MethodParameters:
      Name  Flags
      num   final
      node  final

  public int convertBackslashValue(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
        start local 1 // int c
         0: .line 88
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.syntax:Ljdk/nashorn/internal/runtime/regexp/joni/Syntax;
            invokevirtual jdk.nashorn.internal.runtime.regexp.joni.Syntax.opEscControlChars:()Z
            ifeq 11
         1: .line 89
            iload 1 /* c */
            lookupswitch { // 8
                   97: 6
                   98: 7
                  101: 8
                  102: 5
                  110: 2
                  114: 4
                  116: 3
                  118: 9
              default: 11
          }
         2: .line 90
      StackMap locals:
      StackMap stack:
            bipush 10
            ireturn
         3: .line 91
      StackMap locals:
      StackMap stack:
            bipush 9
            ireturn
         4: .line 92
      StackMap locals:
      StackMap stack:
            bipush 13
            ireturn
         5: .line 93
      StackMap locals:
      StackMap stack:
            bipush 12
            ireturn
         6: .line 94
      StackMap locals:
      StackMap stack:
            bipush 7
            ireturn
         7: .line 95
      StackMap locals:
      StackMap stack:
            bipush 8
            ireturn
         8: .line 96
      StackMap locals:
      StackMap stack:
            bipush 27
            ireturn
         9: .line 98
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.syntax:Ljdk/nashorn/internal/runtime/regexp/joni/Syntax;
            invokevirtual jdk.nashorn.internal.runtime.regexp.joni.Syntax.op2EscVVtab:()Z
            ifeq 11
        10: .line 100
            bipush 11
            ireturn
        11: .line 107
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            ireturn
        end local 1 // int c
        end local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljdk/nashorn/internal/runtime/regexp/joni/ScanEnvironment;
            0   12     1     c  I
    MethodParameters:
      Name  Flags
      c     final

  void ccEscWarn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
        start local 1 // java.lang.String s
         0: .line 112
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.syntax:Ljdk/nashorn/internal/runtime/regexp/joni/Syntax;
            invokevirtual jdk.nashorn.internal.runtime.regexp.joni.Syntax.warnCCOpNotEscaped:()Z
            ifeq 2
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.syntax:Ljdk/nashorn/internal/runtime/regexp/joni/Syntax;
            invokevirtual jdk.nashorn.internal.runtime.regexp.joni.Syntax.backSlashEscapeInCC:()Z
            ifeq 2
         1: .line 113
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment.reg:Ljdk/nashorn/internal/runtime/regexp/joni/Regex;
            getfield jdk.nashorn.internal.runtime.regexp.joni.Regex.warnings:Ljdk/nashorn/internal/runtime/regexp/joni/WarnCallback;
            new java.lang.StringBuilder
            dup
            ldc "character class has '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' without escape"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface jdk.nashorn.internal.runtime.regexp.joni.WarnCallback.warn:(Ljava/lang/String;)V
         2: .line 116
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String s
        end local 0 // jdk.nashorn.internal.runtime.regexp.joni.ScanEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/nashorn/internal/runtime/regexp/joni/ScanEnvironment;
            0    3     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     final
}
SourceFile: "ScanEnvironment.java"