final class com.oracle.truffle.nfi.Lexer
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.nfi.Lexer
  super_class: java.lang.Object
{
  private final java.lang.CharSequence source;
    descriptor: Ljava/lang/CharSequence;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private com.oracle.truffle.nfi.Lexer$Token curToken;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private com.oracle.truffle.nfi.Lexer$Token nextToken;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x0002) ACC_PRIVATE

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

  void <init>(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.nfi.Lexer this
        start local 1 // java.lang.CharSequence source
         0: .line 85
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 86
            aload 0 /* this */
            aload 1 /* source */
            putfield com.oracle.truffle.nfi.Lexer.source:Ljava/lang/CharSequence;
         2: .line 87
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.nfi.Lexer.position:I
         3: .line 88
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.lex:()V
         4: .line 89
            return
        end local 1 // java.lang.CharSequence source
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/nfi/Lexer;
            0    5     1  source  Ljava/lang/CharSequence;
    MethodParameters:
        Name  Flags
      source  

  public com.oracle.truffle.nfi.Lexer$Token next();
    descriptor: ()Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 92
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.lex:()V
         1: .line 93
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.curToken:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/nfi/Lexer;

  public com.oracle.truffle.nfi.Lexer$Token peek();
    descriptor: ()Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 97
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.nextToken:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/nfi/Lexer;

  public java.lang.String currentValue();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 101
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.curTokenEnd:I
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.source:Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            if_icmple 2
         1: .line 102
            ldc "<EOF>"
            areturn
         2: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.curTokenStart:I
            istore 1 /* start */
        start local 1 // int start
         3: .line 105
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.curTokenEnd:I
            istore 2 /* end */
        start local 2 // int end
         4: .line 106
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.curToken:Lcom/oracle/truffle/nfi/Lexer$Token;
            getstatic com.oracle.truffle.nfi.Lexer$Token.STRING:Lcom/oracle/truffle/nfi/Lexer$Token;
            if_acmpne 7
         5: .line 108
            iinc 1 /* start */ 1
         6: .line 109
            iinc 2 /* end */ -1
         7: .line 111
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.source:Ljava/lang/CharSequence;
            iload 1 /* start */
            iload 2 /* end */
            invokeinterface java.lang.CharSequence.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            areturn
        end local 2 // int end
        end local 1 // int start
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/nfi/Lexer;
            3    8     1  start  I
            4    8     2    end  I

  public java.lang.String peekValue();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 116
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.position:I
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.source:Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            if_icmple 2
         1: .line 117
            ldc "<EOF>"
            areturn
         2: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.source:Ljava/lang/CharSequence;
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.nextTokenStart:I
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.position:I
            invokeinterface java.lang.CharSequence.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/nfi/Lexer;

  public com.oracle.truffle.nfi.NFIParserException fail(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/nfi/NFIParserException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.nfi.Lexer this
        start local 1 // java.lang.String message
         0: .line 124
            new com.oracle.truffle.nfi.NFIParserException
            dup
            aload 1 /* message */
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.curToken:Lcom/oracle/truffle/nfi/Lexer$Token;
            getstatic com.oracle.truffle.nfi.Lexer$Token.EOF:Lcom/oracle/truffle/nfi/Lexer$Token;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals: com.oracle.truffle.nfi.Lexer java.lang.String
      StackMap stack: new 0 new 0 java.lang.String
         1: iconst_0
      StackMap locals: com.oracle.truffle.nfi.Lexer java.lang.String
      StackMap stack: new 0 new 0 java.lang.String int
         2: invokespecial com.oracle.truffle.nfi.NFIParserException.<init>:(Ljava/lang/String;Z)V
            athrow
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/nfi/Lexer;
            0    3     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  

  public com.oracle.truffle.nfi.NFIParserException fail(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/truffle/nfi/NFIParserException;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.nfi.Lexer this
        start local 1 // java.lang.String message
        start local 2 // java.lang.Object[] args
         0: .line 128
            aload 0 /* this */
            aload 1 /* message */
            aload 2 /* args */
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.nfi.Lexer.fail:(Ljava/lang/String;)Lcom/oracle/truffle/nfi/NFIParserException;
            athrow
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/nfi/Lexer;
            0    1     1  message  Ljava/lang/String;
            0    1     2     args  [Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      message  
      args     

  public void mark();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 132
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.nextTokenStart:I
            putfield com.oracle.truffle.nfi.Lexer.mark:I
         1: .line 133
            return
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/nfi/Lexer;

  public java.lang.String markedValue();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 136
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.curTokenEnd:I
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.source:Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            invokestatic java.lang.Math.min:(II)I
            istore 1 /* to */
        start local 1 // int to
         1: .line 137
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.source:Ljava/lang/CharSequence;
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.mark:I
            iload 1 /* to */
            invokeinterface java.lang.CharSequence.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            areturn
        end local 1 // int to
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/nfi/Lexer;
            1    2     1    to  I

  private boolean atEnd();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 141
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.position:I
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.source:Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            if_icmplt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/nfi/Lexer;

  private char ch();
    descriptor: ()C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 145
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.atEnd:()Z
            ifeq 2
         1: .line 146
            iconst_0
            ireturn
         2: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.source:Ljava/lang/CharSequence;
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.position:I
            invokeinterface java.lang.CharSequence.charAt:(I)C
            ireturn
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/nfi/Lexer;

  private void lex();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 153
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.nextToken:Lcom/oracle/truffle/nfi/Lexer$Token;
            putfield com.oracle.truffle.nfi.Lexer.curToken:Lcom/oracle/truffle/nfi/Lexer$Token;
         1: .line 154
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.nextTokenStart:I
            putfield com.oracle.truffle.nfi.Lexer.curTokenStart:I
         2: .line 155
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.position:I
            putfield com.oracle.truffle.nfi.Lexer.curTokenEnd:I
         3: .line 157
            goto 5
         4: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.nfi.Lexer.position:I
            iconst_1
            iadd
            putfield com.oracle.truffle.nfi.Lexer.position:I
         5: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.ch:()C
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 4
         6: .line 161
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.Lexer.position:I
            putfield com.oracle.truffle.nfi.Lexer.nextTokenStart:I
         7: .line 162
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.getNextToken:()Lcom/oracle/truffle/nfi/Lexer$Token;
            putfield com.oracle.truffle.nfi.Lexer.nextToken:Lcom/oracle/truffle/nfi/Lexer$Token;
         8: .line 163
            return
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/truffle/nfi/Lexer;

  private static boolean isIdentStartChar(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 166
            iload 0 /* c */
            invokestatic java.lang.Character.isAlphabetic:(I)Z
            ifne 1
            iload 0 /* c */
            bipush 47
            if_icmpeq 1
            iload 0 /* c */
            bipush 95
            if_icmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private static boolean isIdentChar(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 171
            iload 0 /* c */
            invokestatic java.lang.Character.isAlphabetic:(I)Z
            ifne 5
         1: .line 172
            iload 0 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 5
         2: .line 173
            iload 0 /* c */
            bipush 47
            if_icmpeq 5
            iload 0 /* c */
            bipush 46
            if_icmpeq 5
         3: .line 174
            iload 0 /* c */
            bipush 95
            if_icmpeq 5
         4: .line 171
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private com.oracle.truffle.nfi.Lexer$Token getNextToken();
    descriptor: ()Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.nfi.Lexer this
         0: .line 179
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.ch:()C
            invokestatic com.oracle.truffle.nfi.Lexer.isIdentStartChar:(C)Z
            ifeq 4
         1: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.nfi.Lexer.position:I
            iconst_1
            iadd
            putfield com.oracle.truffle.nfi.Lexer.position:I
         2: .line 182
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.ch:()C
            invokestatic com.oracle.truffle.nfi.Lexer.isIdentChar:(C)Z
            ifne 1
         3: .line 183
            getstatic com.oracle.truffle.nfi.Lexer$Token.IDENTIFIER:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
         4: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.ch:()C
            istore 1 /* c */
        start local 1 // char c
         5: .line 186
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.nfi.Lexer.position:I
            iconst_1
            iadd
            putfield com.oracle.truffle.nfi.Lexer.position:I
         6: .line 187
            iload 1 /* c */
            lookupswitch { // 14
                    0: 7
                   34: 24
                   39: 24
                   40: 8
                   41: 9
                   44: 16
                   46: 18
                   58: 14
                   59: 15
                   91: 10
                   93: 11
                  123: 12
                  124: 17
                  125: 13
              default: 31
          }
         7: .line 189
      StackMap locals: int
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.EOF:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
         8: .line 191
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.OPENPAREN:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
         9: .line 193
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.CLOSEPAREN:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        10: .line 195
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.OPENBRACKET:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        11: .line 197
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.CLOSEBRACKET:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        12: .line 199
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.OPENBRACE:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        13: .line 201
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.CLOSEBRACE:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        14: .line 203
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.COLON:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        15: .line 205
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.SEMICOLON:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        16: .line 207
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.COMMA:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        17: .line 209
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.OR:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        18: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.ch:()C
            bipush 46
            if_icmpne 23
        19: .line 212
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.nfi.Lexer.position:I
            iconst_1
            iadd
            putfield com.oracle.truffle.nfi.Lexer.position:I
        20: .line 213
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.ch:()C
            bipush 46
            if_icmpne 23
        21: .line 214
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.nfi.Lexer.position:I
            iconst_1
            iadd
            putfield com.oracle.truffle.nfi.Lexer.position:I
        22: .line 215
            getstatic com.oracle.truffle.nfi.Lexer$Token.ELLIPSIS:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        23: .line 218
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.INVALID:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        24: .line 221
      StackMap locals:
      StackMap stack:
            goto 29
        25: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.ch:()C
            iload 1 /* c */
            if_icmpne 28
        26: .line 223
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.nfi.Lexer.position:I
            iconst_1
            iadd
            putfield com.oracle.truffle.nfi.Lexer.position:I
        27: .line 224
            getstatic com.oracle.truffle.nfi.Lexer$Token.STRING:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        28: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.nfi.Lexer.position:I
            iconst_1
            iadd
            putfield com.oracle.truffle.nfi.Lexer.position:I
        29: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.nfi.Lexer.atEnd:()Z
            ifeq 25
        30: .line 228
            getstatic com.oracle.truffle.nfi.Lexer$Token.INVALID:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        31: .line 230
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.nfi.Lexer$Token.INVALID:Lcom/oracle/truffle/nfi/Lexer$Token;
            areturn
        end local 1 // char c
        end local 0 // com.oracle.truffle.nfi.Lexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   32     0  this  Lcom/oracle/truffle/nfi/Lexer;
            5   32     1     c  C
}
SourceFile: "Lexer.java"
NestMembers:
  com.oracle.truffle.nfi.Lexer$Token
InnerClasses:
  public final Token = com.oracle.truffle.nfi.Lexer$Token of com.oracle.truffle.nfi.Lexer