public class sun.tools.java.ScannerInputReader extends java.io.FilterReader implements sun.tools.java.Constants
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.tools.java.ScannerInputReader
  super_class: java.io.FilterReader
{
  sun.tools.java.Environment env;
    descriptor: Lsun/tools/java/Environment;
    flags: (0x0000) 

  long pos;
    descriptor: J
    flags: (0x0000) 

  private long chpos;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

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

  private final char[] buffer;
    descriptor: [C
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  public void <init>(sun.tools.java.Environment, java.io.InputStream);
    descriptor: (Lsun/tools/java/Environment;Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.tools.java.ScannerInputReader this
        start local 1 // sun.tools.java.Environment env
        start local 2 // java.io.InputStream in
         0: .line 72
            aload 0 /* this */
            aload 1 /* env */
            invokevirtual sun.tools.java.Environment.getCharacterEncoding:()Ljava/lang/String;
            ifnull 2
         1: .line 73
            new java.io.InputStreamReader
            dup
            aload 2 /* in */
            aload 1 /* env */
            invokevirtual sun.tools.java.Environment.getCharacterEncoding:()Ljava/lang/String;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
            goto 3
         2: .line 74
      StackMap locals:
      StackMap stack: uninitialized-this
            new java.io.InputStreamReader
            dup
            aload 2 /* in */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
      StackMap locals: uninitialized-this sun.tools.java.Environment java.io.InputStream
      StackMap stack: uninitialized-this java.io.InputStreamReader
         3: invokespecial java.io.FilterReader.<init>:(Ljava/io/Reader;)V
         4: .line 64
            aload 0 /* this */
            iconst_m1
            putfield sun.tools.java.ScannerInputReader.pushBack:I
         5: .line 91
            aload 0 /* this */
            sipush 10240
            newarray 5
            putfield sun.tools.java.ScannerInputReader.buffer:[C
         6: .line 77
            aload 0 /* this */
            iconst_0
            putfield sun.tools.java.ScannerInputReader.currentIndex:I
         7: .line 78
            aload 0 /* this */
            iconst_0
            putfield sun.tools.java.ScannerInputReader.numChars:I
         8: .line 80
            aload 0 /* this */
            aload 1 /* env */
            putfield sun.tools.java.ScannerInputReader.env:Lsun/tools/java/Environment;
         9: .line 81
            aload 0 /* this */
            ldc 4294967296
            putfield sun.tools.java.ScannerInputReader.chpos:J
        10: .line 82
            return
        end local 2 // java.io.InputStream in
        end local 1 // sun.tools.java.Environment env
        end local 0 // sun.tools.java.ScannerInputReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/tools/java/ScannerInputReader;
            0   11     1   env  Lsun/tools/java/Environment;
            0   11     2    in  Ljava/io/InputStream;
    Exceptions:
      throws java.io.UnsupportedEncodingException
    MethodParameters:
      Name  Flags
      env   
      in    

  private int getNextChar();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // sun.tools.java.ScannerInputReader this
         0: .line 108
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.currentIndex:I
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.numChars:I
            if_icmplt 5
         1: .line 109
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.in:Ljava/io/Reader;
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.buffer:[C
            invokevirtual java.io.Reader.read:([C)I
            putfield sun.tools.java.ScannerInputReader.numChars:I
         2: .line 110
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.numChars:I
            iconst_m1
            if_icmpne 4
         3: .line 112
            iconst_m1
            ireturn
         4: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.tools.java.ScannerInputReader.currentIndex:I
         5: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.buffer:[C
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.currentIndex:I
            dup_x1
            iconst_1
            iadd
            putfield sun.tools.java.ScannerInputReader.currentIndex:I
            caload
            ireturn
        end local 0 // sun.tools.java.ScannerInputReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/tools/java/ScannerInputReader;
    Exceptions:
      throws java.io.IOException

  public int read(char[], int, int);
    descriptor: ([CII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.tools.java.ScannerInputReader this
        start local 1 // char[] buffer
        start local 2 // int off
        start local 3 // int len
         0: .line 125
            new sun.tools.java.CompilerError
            dup
         1: .line 126
            ldc "ScannerInputReader is not a fully implemented reader."
         2: .line 125
            invokespecial sun.tools.java.CompilerError.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int len
        end local 2 // int off
        end local 1 // char[] buffer
        end local 0 // sun.tools.java.ScannerInputReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/tools/java/ScannerInputReader;
            0    3     1  buffer  [C
            0    3     2     off  I
            0    3     3     len  I
    MethodParameters:
        Name  Flags
      buffer  
      off     
      len     

  public int read();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.tools.java.ScannerInputReader this
         0: .line 130
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.chpos:J
            putfield sun.tools.java.ScannerInputReader.pos:J
         1: .line 131
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            lconst_1
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
         2: .line 133
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.pushBack:I
            istore 1 /* c */
        start local 1 // int c
         3: .line 134
            iload 1 /* c */
            iconst_m1
            if_icmpne 15
         4: .line 140
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.currentIndex:I
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.numChars:I
            if_icmplt 10
         5: .line 141
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.in:Ljava/io/Reader;
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.buffer:[C
            invokevirtual java.io.Reader.read:([C)I
            putfield sun.tools.java.ScannerInputReader.numChars:I
         6: .line 142
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.numChars:I
            iconst_m1
            if_icmpne 9
         7: .line 144
            iconst_m1
            istore 1 /* c */
         8: .line 145
            goto 16
         9: .line 149
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.tools.java.ScannerInputReader.currentIndex:I
        10: .line 151
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.buffer:[C
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.currentIndex:I
            dup_x1
            iconst_1
            iadd
            putfield sun.tools.java.ScannerInputReader.currentIndex:I
            caload
            istore 1 /* c */
        11: .line 153
            goto 16
      StackMap locals:
      StackMap stack: java.io.CharConversionException
        12: pop
        13: .line 154
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.env:Lsun/tools/java/Environment;
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.pos:J
            ldc "invalid.encoding.char"
            invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;)V
        14: .line 156
            iconst_m1
            ireturn
        15: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield sun.tools.java.ScannerInputReader.pushBack:I
        16: .line 163
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            lookupswitch { // 4
                   -2: 17
                   10: 53
                   13: 55
                   92: 18
              default: 61
          }
        17: .line 167
      StackMap locals:
      StackMap stack:
            bipush 92
            ireturn
        18: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.java.ScannerInputReader.getNextChar:()I
            dup
            istore 1 /* c */
            bipush 117
            if_icmpeq 23
        19: .line 171
            aload 0 /* this */
            iload 1 /* c */
            bipush 92
            if_icmpne 20
            bipush -2
            goto 21
      StackMap locals:
      StackMap stack: sun.tools.java.ScannerInputReader
        20: iload 1 /* c */
      StackMap locals: sun.tools.java.ScannerInputReader int
      StackMap stack: sun.tools.java.ScannerInputReader int
        21: putfield sun.tools.java.ScannerInputReader.pushBack:I
        22: .line 172
            bipush 92
            ireturn
        23: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            lconst_1
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
        24: .line 176
            goto 26
        25: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            lconst_1
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
        26: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.java.ScannerInputReader.getNextChar:()I
            dup
            istore 1 /* c */
            bipush 117
            if_icmpeq 25
        27: .line 181
            iconst_0
            istore 2 /* d */
        start local 2 // int d
        28: .line 182
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        29: goto 41
        30: .line 183
      StackMap locals: int int
      StackMap stack:
            iload 1 /* c */
            tableswitch { // 48 - 102
                   48: 31
                   49: 31
                   50: 31
                   51: 31
                   52: 31
                   53: 31
                   54: 31
                   55: 31
                   56: 31
                   57: 31
                   58: 37
                   59: 37
                   60: 37
                   61: 37
                   62: 37
                   63: 37
                   64: 37
                   65: 35
                   66: 35
                   67: 35
                   68: 35
                   69: 35
                   70: 35
                   71: 37
                   72: 37
                   73: 37
                   74: 37
                   75: 37
                   76: 37
                   77: 37
                   78: 37
                   79: 37
                   80: 37
                   81: 37
                   82: 37
                   83: 37
                   84: 37
                   85: 37
                   86: 37
                   87: 37
                   88: 37
                   89: 37
                   90: 37
                   91: 37
                   92: 37
                   93: 37
                   94: 37
                   95: 37
                   96: 37
                   97: 33
                   98: 33
                   99: 33
                  100: 33
                  101: 33
                  102: 33
              default: 37
          }
        31: .line 186
      StackMap locals:
      StackMap stack:
            iload 2 /* d */
            iconst_4
            ishl
            iload 1 /* c */
            iadd
            bipush 48
            isub
            istore 2 /* d */
        32: .line 187
            goto 40
        33: .line 190
      StackMap locals:
      StackMap stack:
            iload 2 /* d */
            iconst_4
            ishl
            bipush 10
            iadd
            iload 1 /* c */
            iadd
            bipush 97
            isub
            istore 2 /* d */
        34: .line 191
            goto 40
        35: .line 194
      StackMap locals:
      StackMap stack:
            iload 2 /* d */
            iconst_4
            ishl
            bipush 10
            iadd
            iload 1 /* c */
            iadd
            bipush 65
            isub
            istore 2 /* d */
        36: .line 195
            goto 40
        37: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.env:Lsun/tools/java/Environment;
            aload 0 /* this */
            getfield sun.tools.java.ScannerInputReader.pos:J
            ldc "invalid.escape.char"
            invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;)V
        38: .line 199
            aload 0 /* this */
            iload 1 /* c */
            putfield sun.tools.java.ScannerInputReader.pushBack:I
        39: .line 200
            iload 2 /* d */
            ireturn
        40: .line 182
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            lconst_1
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
            aload 0 /* this */
            invokevirtual sun.tools.java.ScannerInputReader.getNextChar:()I
            istore 1 /* c */
      StackMap locals:
      StackMap stack:
        41: iload 3 /* i */
            iconst_4
            if_icmplt 30
        end local 3 // int i
        42: .line 203
            aload 0 /* this */
            iload 1 /* c */
            putfield sun.tools.java.ScannerInputReader.pushBack:I
        43: .line 209
            iload 2 /* d */
            tableswitch { // 10 - 13
                   10: 44
                   11: 52
                   12: 52
                   13: 46
              default: 52
          }
        44: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            ldc 4294967296
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
        45: .line 212
            bipush 10
            ireturn
        46: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.java.ScannerInputReader.getNextChar:()I
            dup
            istore 1 /* c */
            bipush 10
            if_icmpeq 49
        47: .line 215
            aload 0 /* this */
            iload 1 /* c */
            putfield sun.tools.java.ScannerInputReader.pushBack:I
        48: .line 216
            goto 50
        49: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            lconst_1
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
        50: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            ldc 4294967296
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
        51: .line 220
            bipush 10
            ireturn
        52: .line 222
      StackMap locals:
      StackMap stack:
            iload 2 /* d */
            ireturn
        end local 2 // int d
        53: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            ldc 4294967296
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
        54: .line 227
            bipush 10
            ireturn
        55: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.java.ScannerInputReader.getNextChar:()I
            dup
            istore 1 /* c */
            bipush 10
            if_icmpeq 58
        56: .line 231
            aload 0 /* this */
            iload 1 /* c */
            putfield sun.tools.java.ScannerInputReader.pushBack:I
        57: .line 232
            goto 59
        58: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            lconst_1
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
        59: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.tools.java.ScannerInputReader.chpos:J
            ldc 4294967296
            ladd
            putfield sun.tools.java.ScannerInputReader.chpos:J
        60: .line 236
            bipush 10
            ireturn
        61: .line 239
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            ireturn
        end local 1 // int c
        end local 0 // sun.tools.java.ScannerInputReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   62     0  this  Lsun/tools/java/ScannerInputReader;
            3   62     1     c  I
           28   53     2     d  I
           29   42     3     i  I
      Exception table:
        from    to  target  type
           4     8      12  Class java.io.CharConversionException
           9    11      12  Class java.io.CharConversionException
    Exceptions:
      throws java.io.IOException
}
SourceFile: "ScannerInputReader.java"