class jdk.jshell.spi.ExecutionControl$1SpecReader
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.jshell.spi.ExecutionControl$1SpecReader
  super_class: java.lang.Object
{
  int len;
    descriptor: I
    flags: (0x0000) 

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

  char ch;
    descriptor: C
    flags: (0x0000) 

  private final java.lang.String val$spec;
    descriptor: Ljava/lang/String;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
         0: .line 210
            aload 0 /* this */
            aload 1
            putfield jdk.jshell.spi.ExecutionControl$1SpecReader.val$spec:Ljava/lang/String;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 205
            aload 0 /* this */
            aload 1
            invokevirtual java.lang.String.length:()I
            putfield jdk.jshell.spi.ExecutionControl$1SpecReader.len:I
         2: .line 206
            aload 0 /* this */
            iconst_m1
            putfield jdk.jshell.spi.ExecutionControl$1SpecReader.i:I
         3: .line 211
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.next:()Z
            pop
         4: .line 212
            return
        end local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/jshell/spi/ExecutionControl$1SpecReader;
    MethodParameters:
          Name  Flags
      val$spec  final

  boolean more();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
         0: .line 215
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.i:I
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.len:I
            if_icmpge 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/jshell/spi/ExecutionControl$1SpecReader;

  char current();
    descriptor: ()C
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
         0: .line 219
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.ch:C
            ireturn
        end local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jshell/spi/ExecutionControl$1SpecReader;

  final boolean next();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
         0: .line 223
            aload 0 /* this */
            dup
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.i:I
            iconst_1
            iadd
            putfield jdk.jshell.spi.ExecutionControl$1SpecReader.i:I
         1: .line 224
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.i:I
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.len:I
            if_icmpge 4
         2: .line 225
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.val$spec:Ljava/lang/String;
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.i:I
            invokevirtual java.lang.String.charAt:(I)C
            putfield jdk.jshell.spi.ExecutionControl$1SpecReader.ch:C
         3: .line 226
            iconst_1
            ireturn
         4: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.len:I
            putfield jdk.jshell.spi.ExecutionControl$1SpecReader.i:I
         5: .line 229
            iconst_0
            ireturn
        end local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/jshell/spi/ExecutionControl$1SpecReader;

  void skipWhite();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
         0: .line 233
            goto 2
         1: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.next:()Z
            pop
         2: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.more:()Z
            ifeq 3
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.ch:C
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 1
         3: .line 236
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/jshell/spi/ExecutionControl$1SpecReader;

  java.lang.String readId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
         0: .line 239
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.skipWhite:()V
         1: .line 240
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         2: .line 241
            goto 5
         3: .line 242
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.ch:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 243
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.next:()Z
            pop
         5: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.more:()Z
            ifeq 6
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.ch:C
            invokestatic java.lang.Character.isJavaIdentifierPart:(C)Z
            ifne 3
         6: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.skipWhite:()V
         7: .line 246
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* id */
        start local 2 // java.lang.String id
         8: .line 247
            aload 2 /* id */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 10
         9: .line 248
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected identifier in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.val$spec:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 250
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* id */
            areturn
        end local 2 // java.lang.String id
        end local 1 // java.lang.StringBuilder sb
        end local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljdk/jshell/spi/ExecutionControl$1SpecReader;
            2   11     1    sb  Ljava/lang/StringBuilder;
            8   11     2    id  Ljava/lang/String;

  void expect(char);
    descriptor: (C)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
        start local 1 // char exp
         0: .line 254
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.skipWhite:()V
         1: .line 255
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.more:()Z
            ifeq 2
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.ch:C
            iload 1 /* exp */
            if_icmpeq 3
         2: .line 256
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* exp */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc "' in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.val$spec:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.next:()Z
            pop
         4: .line 259
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.skipWhite:()V
         5: .line 260
            return
        end local 1 // char exp
        end local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/jshell/spi/ExecutionControl$1SpecReader;
            0    6     1   exp  C
    MethodParameters:
      Name  Flags
      exp   

  java.lang.String readValue();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
         0: .line 263
            aload 0 /* this */
            bipush 40
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.expect:(C)V
         1: .line 264
            iconst_1
            istore 1 /* parenDepth */
        start local 1 // int parenDepth
         2: .line 265
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         3: .line 266
            goto 12
         4: .line 267
      StackMap locals: int java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.ch:C
            bipush 41
            if_icmpne 8
         5: .line 268
            iinc 1 /* parenDepth */ -1
         6: .line 269
            iload 1 /* parenDepth */
            ifne 10
         7: .line 270
            goto 13
         8: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.ch:C
            bipush 40
            if_icmpne 10
         9: .line 273
            iinc 1 /* parenDepth */ 1
        10: .line 275
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            aload 0 /* this */
            getfield jdk.jshell.spi.ExecutionControl$1SpecReader.ch:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        11: .line 276
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.next:()Z
            pop
        12: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.more:()Z
            ifne 4
        13: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 41
            invokevirtual jdk.jshell.spi.ExecutionControl$1SpecReader.expect:(C)V
        14: .line 279
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // int parenDepth
        end local 0 // jdk.jshell.spi.ExecutionControl$1SpecReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Ljdk/jshell/spi/ExecutionControl$1SpecReader;
            2   15     1  parenDepth  I
            3   15     2          sb  Ljava/lang/StringBuilder;
}
SourceFile: "ExecutionControl.java"
EnclosingMethod: jdk.jshell.spi.ExecutionControl.generate:(Ljdk/jshell/spi/ExecutionEnv;Ljava/lang/String;)Ljdk/jshell/spi/ExecutionControl;
NestHost: jdk.jshell.spi.ExecutionControl
InnerClasses:
  SpecReader = jdk.jshell.spi.ExecutionControl$1SpecReader