public final class org.joni.ast.StringNode extends org.joni.ast.Node implements org.joni.constants.internal.StringType
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.joni.ast.StringNode
  super_class: org.joni.ast.Node
{
  private static final int NODE_STR_MARGIN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

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

  public static final org.joni.ast.StringNode EMPTY;
    descriptor: Lorg/joni/ast/StringNode;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public byte[] bytes;
    descriptor: [B
    flags: (0x0001) ACC_PUBLIC

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 29
            new org.joni.ast.StringNode
            dup
            aconst_null
            ldc 2147483647
            ldc 2147483647
            invokespecial org.joni.ast.StringNode.<init>:([BII)V
            putstatic org.joni.ast.StringNode.EMPTY:Lorg/joni/ast/StringNode;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.joni.ast.StringNode this
        start local 1 // int size
         0: .line 37
            aload 0 /* this */
            iconst_0
            invokespecial org.joni.ast.Node.<init>:(I)V
         1: .line 38
            aload 0 /* this */
            iload 1 /* size */
            newarray 8
            putfield org.joni.ast.StringNode.bytes:[B
         2: .line 39
            return
        end local 1 // int size
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/joni/ast/StringNode;
            0    3     1  size  I
    MethodParameters:
      Name  Flags
      size  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 42
            aload 0 /* this */
            bipush 24
            invokespecial org.joni.ast.StringNode.<init>:(I)V
         1: .line 43
            return
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public static org.joni.ast.StringNode fromCodePoint(int, org.jcodings.Encoding);
    descriptor: (ILorg/jcodings/Encoding;)Lorg/joni/ast/StringNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // int code
        start local 1 // org.jcodings.Encoding enc
         0: .line 46
            new org.joni.ast.StringNode
            dup
            bipush 7
            invokespecial org.joni.ast.StringNode.<init>:(I)V
            astore 2 /* str */
        start local 2 // org.joni.ast.StringNode str
         1: .line 47
            aload 2 /* str */
            aload 1 /* enc */
            iload 0 /* code */
            aload 2 /* str */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 2 /* str */
            getfield org.joni.ast.StringNode.p:I
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            putfield org.joni.ast.StringNode.end:I
         2: .line 48
            aload 2 /* str */
            areturn
        end local 2 // org.joni.ast.StringNode str
        end local 1 // org.jcodings.Encoding enc
        end local 0 // int code
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  code  I
            0    3     1   enc  Lorg/jcodings/Encoding;
            1    3     2   str  Lorg/joni/ast/StringNode;
    MethodParameters:
      Name  Flags
      code  
      enc   

  public void <init>(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.joni.ast.StringNode this
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
         0: .line 52
            aload 0 /* this */
            iconst_0
            invokespecial org.joni.ast.Node.<init>:(I)V
         1: .line 53
            aload 0 /* this */
            aload 1 /* bytes */
            putfield org.joni.ast.StringNode.bytes:[B
         2: .line 54
            aload 0 /* this */
            iload 2 /* p */
            putfield org.joni.ast.StringNode.p:I
         3: .line 55
            aload 0 /* this */
            iload 3 /* end */
            putfield org.joni.ast.StringNode.end:I
         4: .line 56
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.setShared:()V
         5: .line 57
            return
        end local 3 // int end
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/joni/ast/StringNode;
            0    6     1  bytes  [B
            0    6     2      p  I
            0    6     3    end  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      end    

  private void ensure(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.joni.ast.StringNode this
        start local 1 // int ahead
         0: .line 63
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            isub
            iload 1 /* ahead */
            iadd
            istore 2 /* len */
        start local 2 // int len
         1: .line 64
            iload 2 /* len */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            arraylength
            if_icmplt 5
         2: .line 65
            iload 2 /* len */
            bipush 16
            iadd
            newarray 8
            astore 3 /* tmp */
        start local 3 // byte[] tmp
         3: .line 66
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            aload 3 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 67
            aload 0 /* this */
            aload 3 /* tmp */
            putfield org.joni.ast.StringNode.bytes:[B
        end local 3 // byte[] tmp
         5: .line 69
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int len
        end local 1 // int ahead
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/joni/ast/StringNode;
            0    6     1  ahead  I
            1    6     2    len  I
            3    5     3    tmp  [B
    MethodParameters:
       Name  Flags
      ahead  

  private void modifyEnsure(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.joni.ast.StringNode this
        start local 1 // int ahead
         0: .line 74
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.isShared:()Z
            ifeq 9
         1: .line 75
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            isub
            iload 1 /* ahead */
            iadd
            istore 2 /* len */
        start local 2 // int len
         2: .line 76
            iload 2 /* len */
            bipush 16
            iadd
            newarray 8
            astore 3 /* tmp */
        start local 3 // byte[] tmp
         3: .line 77
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            aload 3 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 78
            aload 0 /* this */
            aload 3 /* tmp */
            putfield org.joni.ast.StringNode.bytes:[B
         5: .line 79
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            isub
            putfield org.joni.ast.StringNode.end:I
         6: .line 80
            aload 0 /* this */
            iconst_0
            putfield org.joni.ast.StringNode.p:I
         7: .line 81
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.clearShared:()V
        end local 3 // byte[] tmp
        end local 2 // int len
         8: .line 82
            goto 10
         9: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* ahead */
            invokevirtual org.joni.ast.StringNode.ensure:(I)V
        10: .line 85
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int ahead
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/joni/ast/StringNode;
            0   11     1  ahead  I
            2    8     2    len  I
            3    8     3    tmp  [B
    MethodParameters:
       Name  Flags
      ahead  

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 89
            ldc "String"
            areturn
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/ast/StringNode;

  public int length();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 93
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            isub
            ireturn
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/ast/StringNode;

  public int length(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.joni.ast.StringNode this
        start local 1 // org.jcodings.Encoding enc
         0: .line 97
            aload 1 /* enc */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            invokevirtual org.jcodings.Encoding.strLength:([BII)I
            ireturn
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/ast/StringNode;
            0    1     1   enc  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      enc   

  public org.joni.ast.StringNode splitLastChar(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)Lorg/joni/ast/StringNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.joni.ast.StringNode this
        start local 1 // org.jcodings.Encoding enc
         0: .line 101
            aconst_null
            astore 2 /* n */
        start local 2 // org.joni.ast.StringNode n
         1: .line 102
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            if_icmple 7
         2: .line 103
            aload 1 /* enc */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            invokevirtual org.jcodings.Encoding.prevCharHead:([BIII)I
            istore 3 /* prev */
        start local 3 // int prev
         3: .line 104
            iload 3 /* prev */
            iconst_m1
            if_icmpeq 7
            iload 3 /* prev */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            if_icmple 7
         4: .line 105
            new org.joni.ast.StringNode
            dup
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            iload 3 /* prev */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            invokespecial org.joni.ast.StringNode.<init>:([BII)V
            astore 2 /* n */
         5: .line 106
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.isRaw:()Z
            ifeq 6
            aload 2 /* n */
            invokevirtual org.joni.ast.StringNode.setRaw:()V
         6: .line 107
      StackMap locals: org.joni.ast.StringNode int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* prev */
            putfield org.joni.ast.StringNode.end:I
        end local 3 // int prev
         7: .line 110
      StackMap locals:
      StackMap stack:
            aload 2 /* n */
            areturn
        end local 2 // org.joni.ast.StringNode n
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/joni/ast/StringNode;
            0    8     1   enc  Lorg/jcodings/Encoding;
            1    8     2     n  Lorg/joni/ast/StringNode;
            3    7     3  prev  I
    MethodParameters:
      Name  Flags
      enc   

  public boolean canBeSplit(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.joni.ast.StringNode this
        start local 1 // org.jcodings.Encoding enc
         0: .line 114
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            if_icmple 3
         1: .line 115
            aload 1 /* enc */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            invokevirtual org.jcodings.Encoding.length:([BII)I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            isub
            if_icmpge 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 117
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/joni/ast/StringNode;
            0    4     1   enc  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      enc   

  public void set(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.joni.ast.StringNode this
        start local 1 // byte[] bytes
        start local 2 // int p
        start local 3 // int end
         0: .line 121
            aload 0 /* this */
            aload 1 /* bytes */
            putfield org.joni.ast.StringNode.bytes:[B
         1: .line 122
            aload 0 /* this */
            iload 2 /* p */
            putfield org.joni.ast.StringNode.p:I
         2: .line 123
            aload 0 /* this */
            iload 3 /* end */
            putfield org.joni.ast.StringNode.end:I
         3: .line 124
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.setShared:()V
         4: .line 125
            return
        end local 3 // int end
        end local 2 // int p
        end local 1 // byte[] bytes
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/joni/ast/StringNode;
            0    5     1  bytes  [B
            0    5     2      p  I
            0    5     3    end  I
    MethodParameters:
       Name  Flags
      bytes  
      p      
      end    

  public void catBytes(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.joni.ast.StringNode this
        start local 1 // byte[] cat
        start local 2 // int catP
        start local 3 // int catEnd
         0: .line 128
            iload 3 /* catEnd */
            iload 2 /* catP */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 129
            aload 0 /* this */
            iload 4 /* len */
            invokevirtual org.joni.ast.StringNode.modifyEnsure:(I)V
         2: .line 130
            aload 1 /* cat */
            iload 2 /* catP */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            iload 4 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 131
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.end:I
            iload 4 /* len */
            iadd
            putfield org.joni.ast.StringNode.end:I
         4: .line 132
            return
        end local 4 // int len
        end local 3 // int catEnd
        end local 2 // int catP
        end local 1 // byte[] cat
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/joni/ast/StringNode;
            0    5     1     cat  [B
            0    5     2    catP  I
            0    5     3  catEnd  I
            1    5     4     len  I
    MethodParameters:
        Name  Flags
      cat     
      catP    
      catEnd  

  public void catByte(byte);
    descriptor: (B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.joni.ast.StringNode this
        start local 1 // byte c
         0: .line 135
            aload 0 /* this */
            iconst_1
            invokevirtual org.joni.ast.StringNode.modifyEnsure:(I)V
         1: .line 136
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.end:I
            dup_x1
            iconst_1
            iadd
            putfield org.joni.ast.StringNode.end:I
            iload 1 /* c */
            bastore
         2: .line 137
            return
        end local 1 // byte c
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/joni/ast/StringNode;
            0    3     1     c  B
    MethodParameters:
      Name  Flags
      c     

  public void catCode(int, org.jcodings.Encoding);
    descriptor: (ILorg/jcodings/Encoding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.joni.ast.StringNode this
        start local 1 // int code
        start local 2 // org.jcodings.Encoding enc
         0: .line 140
            aload 0 /* this */
            bipush 7
            invokevirtual org.joni.ast.StringNode.modifyEnsure:(I)V
         1: .line 141
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.end:I
            aload 2 /* enc */
            iload 1 /* code */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            iadd
            putfield org.joni.ast.StringNode.end:I
         2: .line 142
            return
        end local 2 // org.jcodings.Encoding enc
        end local 1 // int code
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/joni/ast/StringNode;
            0    3     1  code  I
            0    3     2   enc  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      code  
      enc   

  public void setRaw();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 145
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.flag:I
            iconst_1
            ior
            putfield org.joni.ast.StringNode.flag:I
         1: .line 146
            return
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public void clearRaw();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 149
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.flag:I
            bipush -2
            iand
            putfield org.joni.ast.StringNode.flag:I
         1: .line 150
            return
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public boolean isRaw();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 153
            aload 0 /* this */
            getfield org.joni.ast.StringNode.flag:I
            iconst_1
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public void setAmbig();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 157
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.flag:I
            iconst_2
            ior
            putfield org.joni.ast.StringNode.flag:I
         1: .line 158
            return
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public void clearAmbig();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 161
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.flag:I
            bipush -3
            iand
            putfield org.joni.ast.StringNode.flag:I
         1: .line 162
            return
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public boolean isAmbig();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 165
            aload 0 /* this */
            getfield org.joni.ast.StringNode.flag:I
            iconst_2
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public void setDontGetOptInfo();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 169
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.flag:I
            iconst_4
            ior
            putfield org.joni.ast.StringNode.flag:I
         1: .line 170
            return
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public void clearDontGetOptInfo();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 173
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.flag:I
            bipush -5
            iand
            putfield org.joni.ast.StringNode.flag:I
         1: .line 174
            return
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public boolean isDontGetOptInfo();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 177
            aload 0 /* this */
            getfield org.joni.ast.StringNode.flag:I
            iconst_4
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public void setShared();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 181
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.flag:I
            bipush 8
            ior
            putfield org.joni.ast.StringNode.flag:I
         1: .line 182
            return
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public void clearShared();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 185
            aload 0 /* this */
            dup
            getfield org.joni.ast.StringNode.flag:I
            bipush -9
            iand
            putfield org.joni.ast.StringNode.flag:I
         1: .line 186
            return
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public boolean isShared();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 189
            aload 0 /* this */
            getfield org.joni.ast.StringNode.flag:I
            bipush 8
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/joni/ast/StringNode;

  public java.lang.String flagsToString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.joni.ast.StringNode this
         0: .line 193
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* flags */
        start local 1 // java.lang.StringBuilder flags
         1: .line 194
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.isRaw:()Z
            ifeq 2
            aload 1 /* flags */
            ldc "RAW "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 195
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.isAmbig:()Z
            ifeq 3
            aload 1 /* flags */
            ldc "AMBIG "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.isDontGetOptInfo:()Z
            ifeq 4
            aload 1 /* flags */
            ldc "DONT_GET_OPT_INFO "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.isShared:()Z
            ifeq 5
            aload 1 /* flags */
            ldc "SHARED "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 198
      StackMap locals:
      StackMap stack:
            aload 1 /* flags */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder flags
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/joni/ast/StringNode;
            1    6     1  flags  Ljava/lang/StringBuilder;

  public java.lang.String toString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.joni.ast.StringNode this
        start local 1 // int level
         0: .line 203
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 204
            aload 2 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "\n  flags: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.joni.ast.StringNode.flagsToString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 205
            aload 2 /* sb */
            ldc "\n  bytes: '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 206
            aload 0 /* this */
            getfield org.joni.ast.StringNode.p:I
            istore 3 /* i */
        start local 3 // int i
         4: goto 10
         5: .line 207
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            iload 3 /* i */
            baload
            sipush 255
            iand
            bipush 32
            if_icmplt 8
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            iload 3 /* i */
            baload
            sipush 255
            iand
            bipush 127
            if_icmpge 8
         6: .line 208
            aload 2 /* sb */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            iload 3 /* i */
            baload
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 209
            goto 9
         8: .line 210
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            ldc "[0x%02x]"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.joni.ast.StringNode.bytes:[B
            iload 3 /* i */
            baload
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 206
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 0 /* this */
            getfield org.joni.ast.StringNode.end:I
            if_icmplt 5
        end local 3 // int i
        11: .line 213
            aload 2 /* sb */
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 214
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // int level
        end local 0 // org.joni.ast.StringNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lorg/joni/ast/StringNode;
            0   13     1  level  I
            1   13     2     sb  Ljava/lang/StringBuilder;
            4   11     3      i  I
    MethodParameters:
       Name  Flags
      level  
}
SourceFile: "StringNode.java"