class com.oracle.js.parser.Lexer$EditStringLexer extends com.oracle.js.parser.Lexer
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.js.parser.Lexer$EditStringLexer
  super_class: com.oracle.js.parser.Lexer
{
  final com.oracle.js.parser.TokenType stringType;
    descriptor: Lcom/oracle/js/parser/TokenType;
    flags: (0x0010) ACC_FINAL

  void <init>(com.oracle.js.parser.Lexer, com.oracle.js.parser.TokenType, com.oracle.js.parser.Lexer$State);
    descriptor: (Lcom/oracle/js/parser/Lexer;Lcom/oracle/js/parser/TokenType;Lcom/oracle/js/parser/Lexer$State;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.js.parser.Lexer$EditStringLexer this
        start local 1 // com.oracle.js.parser.Lexer lexer
        start local 2 // com.oracle.js.parser.TokenType stringType
        start local 3 // com.oracle.js.parser.Lexer$State stringState
         0: .line 1657
            aload 0 /* this */
            aload 1 /* lexer */
            aload 3 /* stringState */
            invokespecial com.oracle.js.parser.Lexer.<init>:(Lcom/oracle/js/parser/Lexer;Lcom/oracle/js/parser/Lexer$State;)V
         1: .line 1659
            aload 0 /* this */
            aload 2 /* stringType */
            putfield com.oracle.js.parser.Lexer$EditStringLexer.stringType:Lcom/oracle/js/parser/TokenType;
         2: .line 1660
            return
        end local 3 // com.oracle.js.parser.Lexer$State stringState
        end local 2 // com.oracle.js.parser.TokenType stringType
        end local 1 // com.oracle.js.parser.Lexer lexer
        end local 0 // com.oracle.js.parser.Lexer$EditStringLexer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/js/parser/Lexer$EditStringLexer;
            0    3     1        lexer  Lcom/oracle/js/parser/Lexer;
            0    3     2   stringType  Lcom/oracle/js/parser/TokenType;
            0    3     3  stringState  Lcom/oracle/js/parser/Lexer$State;
    MethodParameters:
             Name  Flags
      lexer        final
      stringType   final
      stringState  final

  public void lexify();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.oracle.js.parser.Lexer$EditStringLexer this
         0: .line 1668
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.position:I
            istore 1 /* stringStart */
        start local 1 // int stringStart
         1: .line 1670
            iconst_0
            istore 2 /* primed */
        start local 2 // boolean primed
         2: .line 1674
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.atEOF:()Z
            ifeq 4
         3: .line 1675
            goto 37
         4: .line 1679
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.ch0:C
            bipush 92
            if_icmpne 7
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.stringType:Lcom/oracle/js/parser/TokenType;
            getstatic com.oracle.js.parser.TokenType.ESCSTRING:Lcom/oracle/js/parser/TokenType;
            if_acmpne 7
         5: .line 1680
            aload 0 /* this */
            iconst_2
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.skip:(I)V
         6: .line 1682
            goto 2
         7: .line 1686
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.ch0:C
            bipush 36
            if_icmpne 35
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.ch1:C
            bipush 123
            if_icmpne 35
         8: .line 1687
            iload 2 /* primed */
            ifeq 9
            iload 1 /* stringStart */
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.position:I
            if_icmpeq 13
         9: .line 1688
      StackMap locals:
      StackMap stack:
            iload 2 /* primed */
            ifeq 11
        10: .line 1689
            aload 0 /* this */
            getstatic com.oracle.js.parser.TokenType.ADD:Lcom/oracle/js/parser/TokenType;
            iload 1 /* stringStart */
            iload 1 /* stringStart */
            iconst_1
            iadd
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.add:(Lcom/oracle/js/parser/TokenType;II)V
        11: .line 1692
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.stringType:Lcom/oracle/js/parser/TokenType;
            iload 1 /* stringStart */
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.position:I
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.add:(Lcom/oracle/js/parser/TokenType;II)V
        12: .line 1693
            iconst_1
            istore 2 /* primed */
        13: .line 1697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.skip:(I)V
        14: .line 1700
            aload 0 /* this */
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.saveState:()Lcom/oracle/js/parser/Lexer$State;
            astore 3 /* expressionState */
        start local 3 // com.oracle.js.parser.Lexer$State expressionState
        15: .line 1703
            iconst_1
            istore 4 /* braceCount */
        start local 4 // int braceCount
        16: .line 1706
            goto 23
        17: .line 1708
      StackMap locals: com.oracle.js.parser.Lexer$State int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.ch0:C
            bipush 125
            if_icmpne 20
        18: .line 1710
            iinc 4 /* braceCount */ -1
            iload 4 /* braceCount */
            ifne 22
        19: .line 1711
            goto 24
        20: .line 1713
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.ch0:C
            bipush 123
            if_icmpne 22
        21: .line 1715
            iinc 4 /* braceCount */ 1
        22: .line 1719
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.skip:(I)V
        23: .line 1706
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.atEOF:()Z
            ifeq 17
        24: .line 1723
      StackMap locals:
      StackMap stack:
            iload 4 /* braceCount */
            ifeq 26
        25: .line 1724
            aload 0 /* this */
            ldc "edit.string.missing.brace"
            iconst_0
            anewarray java.lang.String
            invokestatic com.oracle.js.parser.Lexer.message:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            getstatic com.oracle.js.parser.TokenType.LBRACE:Lcom/oracle/js/parser/TokenType;
            aload 3 /* expressionState */
            getfield com.oracle.js.parser.Lexer$State.position:I
            iconst_1
            isub
            iconst_1
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.error:(Ljava/lang/String;Lcom/oracle/js/parser/TokenType;II)V
        26: .line 1728
      StackMap locals:
      StackMap stack:
            aload 3 /* expressionState */
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.position:I
            invokevirtual com.oracle.js.parser.Lexer$State.setLimit:(I)V
        27: .line 1730
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.skip:(I)V
        28: .line 1733
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.position:I
            istore 1 /* stringStart */
        29: .line 1736
            aload 0 /* this */
            getstatic com.oracle.js.parser.TokenType.ADD:Lcom/oracle/js/parser/TokenType;
            aload 3 /* expressionState */
            getfield com.oracle.js.parser.Lexer$State.position:I
            aload 3 /* expressionState */
            getfield com.oracle.js.parser.Lexer$State.position:I
            iconst_1
            iadd
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.add:(Lcom/oracle/js/parser/TokenType;II)V
        30: .line 1737
            aload 0 /* this */
            getstatic com.oracle.js.parser.TokenType.LPAREN:Lcom/oracle/js/parser/TokenType;
            aload 3 /* expressionState */
            getfield com.oracle.js.parser.Lexer$State.position:I
            aload 3 /* expressionState */
            getfield com.oracle.js.parser.Lexer$State.position:I
            iconst_1
            iadd
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.add:(Lcom/oracle/js/parser/TokenType;II)V
        31: .line 1740
            new com.oracle.js.parser.Lexer
            dup
            aload 0 /* this */
            aload 3 /* expressionState */
            invokespecial com.oracle.js.parser.Lexer.<init>:(Lcom/oracle/js/parser/Lexer;Lcom/oracle/js/parser/Lexer$State;)V
            astore 5 /* lexer */
        start local 5 // com.oracle.js.parser.Lexer lexer
        32: .line 1741
            aload 5 /* lexer */
            invokevirtual com.oracle.js.parser.Lexer.lexify:()V
        33: .line 1744
            aload 0 /* this */
            getstatic com.oracle.js.parser.TokenType.RPAREN:Lcom/oracle/js/parser/TokenType;
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.position:I
            iconst_1
            isub
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.position:I
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.add:(Lcom/oracle/js/parser/TokenType;II)V
        34: .line 1746
            goto 2
        end local 5 // com.oracle.js.parser.Lexer lexer
        end local 4 // int braceCount
        end local 3 // com.oracle.js.parser.Lexer$State expressionState
        35: .line 1750
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.skip:(I)V
        36: .line 1672
            goto 2
        37: .line 1754
      StackMap locals:
      StackMap stack:
            iload 1 /* stringStart */
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.limit:I
            if_icmpeq 41
        38: .line 1756
            iload 2 /* primed */
            ifeq 40
        39: .line 1757
            aload 0 /* this */
            getstatic com.oracle.js.parser.TokenType.ADD:Lcom/oracle/js/parser/TokenType;
            iload 1 /* stringStart */
            iload 1 /* stringStart */
            iconst_1
            iadd
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.add:(Lcom/oracle/js/parser/TokenType;II)V
        40: .line 1760
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.stringType:Lcom/oracle/js/parser/TokenType;
            iload 1 /* stringStart */
            aload 0 /* this */
            getfield com.oracle.js.parser.Lexer$EditStringLexer.limit:I
            invokevirtual com.oracle.js.parser.Lexer$EditStringLexer.add:(Lcom/oracle/js/parser/TokenType;II)V
        41: .line 1762
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean primed
        end local 1 // int stringStart
        end local 0 // com.oracle.js.parser.Lexer$EditStringLexer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   42     0             this  Lcom/oracle/js/parser/Lexer$EditStringLexer;
            1   42     1      stringStart  I
            2   42     2           primed  Z
           15   35     3  expressionState  Lcom/oracle/js/parser/Lexer$State;
           16   35     4       braceCount  I
           32   35     5            lexer  Lcom/oracle/js/parser/Lexer;
}
SourceFile: "Lexer.java"
NestHost: com.oracle.js.parser.Lexer
InnerClasses:
  private EditStringLexer = com.oracle.js.parser.Lexer$EditStringLexer of com.oracle.js.parser.Lexer
  State = com.oracle.js.parser.Lexer$State of com.oracle.js.parser.Lexer