public final class com.oracle.truffle.nfi.Lexer$Token extends java.lang.Enum<com.oracle.truffle.nfi.Lexer$Token>
  minor version: 0
  major version: 59
  flags: flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ANNOTATION
  this_class: com.oracle.truffle.nfi.Lexer$Token
  super_class: java.lang.Enum
{
  public static final com.oracle.truffle.nfi.Lexer$Token OPENPAREN;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token CLOSEPAREN;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token OPENBRACKET;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token CLOSEBRACKET;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token OPENBRACE;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token CLOSEBRACE;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token SEMICOLON;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token COLON;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token COMMA;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token OR;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token ELLIPSIS;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token IDENTIFIER;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token STRING;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token INVALID;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  public static final com.oracle.truffle.nfi.Lexer$Token EOF;
    descriptor: Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final com.oracle.truffle.nfi.Lexer$Token[] ENUM$VALUES;
    descriptor: [Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 46
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "OPENPAREN"
            iconst_0
            ldc "("
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.OPENPAREN:Lcom/oracle/truffle/nfi/Lexer$Token;
         1: .line 47
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "CLOSEPAREN"
            iconst_1
            ldc ")"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.CLOSEPAREN:Lcom/oracle/truffle/nfi/Lexer$Token;
         2: .line 48
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "OPENBRACKET"
            iconst_2
            ldc "["
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.OPENBRACKET:Lcom/oracle/truffle/nfi/Lexer$Token;
         3: .line 49
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "CLOSEBRACKET"
            iconst_3
            ldc "]"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.CLOSEBRACKET:Lcom/oracle/truffle/nfi/Lexer$Token;
         4: .line 50
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "OPENBRACE"
            iconst_4
            ldc "{"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.OPENBRACE:Lcom/oracle/truffle/nfi/Lexer$Token;
         5: .line 51
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "CLOSEBRACE"
            iconst_5
            ldc "}"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.CLOSEBRACE:Lcom/oracle/truffle/nfi/Lexer$Token;
         6: .line 52
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "SEMICOLON"
            bipush 6
            ldc ";"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.SEMICOLON:Lcom/oracle/truffle/nfi/Lexer$Token;
         7: .line 53
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "COLON"
            bipush 7
            ldc ":"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.COLON:Lcom/oracle/truffle/nfi/Lexer$Token;
         8: .line 54
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "COMMA"
            bipush 8
            ldc ","
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.COMMA:Lcom/oracle/truffle/nfi/Lexer$Token;
         9: .line 55
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "OR"
            bipush 9
            ldc "|"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.OR:Lcom/oracle/truffle/nfi/Lexer$Token;
        10: .line 56
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "ELLIPSIS"
            bipush 10
            ldc "..."
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.ELLIPSIS:Lcom/oracle/truffle/nfi/Lexer$Token;
        11: .line 57
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "IDENTIFIER"
            bipush 11
            ldc "identifier"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.IDENTIFIER:Lcom/oracle/truffle/nfi/Lexer$Token;
        12: .line 58
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "STRING"
            bipush 12
            ldc "string"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.STRING:Lcom/oracle/truffle/nfi/Lexer$Token;
        13: .line 59
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "INVALID"
            bipush 13
            aconst_null
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.INVALID:Lcom/oracle/truffle/nfi/Lexer$Token;
        14: .line 60
            new com.oracle.truffle.nfi.Lexer$Token
            dup
            ldc "EOF"
            bipush 14
            ldc "EOF"
            invokespecial com.oracle.truffle.nfi.Lexer$Token.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            putstatic com.oracle.truffle.nfi.Lexer$Token.EOF:Lcom/oracle/truffle/nfi/Lexer$Token;
        15: .line 45
            bipush 15
            anewarray com.oracle.truffle.nfi.Lexer$Token
            dup
            iconst_0
            getstatic com.oracle.truffle.nfi.Lexer$Token.OPENPAREN:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.nfi.Lexer$Token.CLOSEPAREN:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            iconst_2
            getstatic com.oracle.truffle.nfi.Lexer$Token.OPENBRACKET:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            iconst_3
            getstatic com.oracle.truffle.nfi.Lexer$Token.CLOSEBRACKET:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            iconst_4
            getstatic com.oracle.truffle.nfi.Lexer$Token.OPENBRACE:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            iconst_5
            getstatic com.oracle.truffle.nfi.Lexer$Token.CLOSEBRACE:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            bipush 6
            getstatic com.oracle.truffle.nfi.Lexer$Token.SEMICOLON:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            bipush 7
            getstatic com.oracle.truffle.nfi.Lexer$Token.COLON:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            bipush 8
            getstatic com.oracle.truffle.nfi.Lexer$Token.COMMA:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            bipush 9
            getstatic com.oracle.truffle.nfi.Lexer$Token.OR:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            bipush 10
            getstatic com.oracle.truffle.nfi.Lexer$Token.ELLIPSIS:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            bipush 11
            getstatic com.oracle.truffle.nfi.Lexer$Token.IDENTIFIER:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            bipush 12
            getstatic com.oracle.truffle.nfi.Lexer$Token.STRING:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            bipush 13
            getstatic com.oracle.truffle.nfi.Lexer$Token.INVALID:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            dup
            bipush 14
            getstatic com.oracle.truffle.nfi.Lexer$Token.EOF:Lcom/oracle/truffle/nfi/Lexer$Token;
            aastore
            putstatic com.oracle.truffle.nfi.Lexer$Token.ENUM$VALUES:[Lcom/oracle/truffle/nfi/Lexer$Token;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String, int, java.lang.String);
    descriptor: (Ljava/lang/String;ILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.nfi.Lexer$Token this
        start local 3 // java.lang.String name
         0: .line 64
            aload 0 /* this */
            aload 1
            iload 2
            invokespecial java.lang.Enum.<init>:(Ljava/lang/String;I)V
         1: .line 65
            aload 0 /* this */
            aload 3 /* name */
            putfield com.oracle.truffle.nfi.Lexer$Token.name:Ljava/lang/String;
         2: .line 66
            return
        end local 3 // java.lang.String name
        end local 0 // com.oracle.truffle.nfi.Lexer$Token this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/nfi/Lexer$Token;
            0    3     3  name  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      $enum$name     
      $enum$ordinal  
      name           

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

  public static com.oracle.truffle.nfi.Lexer$Token[] values();
    descriptor: ()[Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=0
         0: .line 1
            getstatic com.oracle.truffle.nfi.Lexer$Token.ENUM$VALUES:[Lcom/oracle/truffle/nfi/Lexer$Token;
            dup
            astore 0
            iconst_0
            aload 0
            arraylength
            dup
            istore 1
            anewarray com.oracle.truffle.nfi.Lexer$Token
            dup
            astore 2
            iconst_0
            iload 1
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            aload 2
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.truffle.nfi.Lexer$Token valueOf(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/nfi/Lexer$Token;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 1
            ldc Lcom/oracle/truffle/nfi/Lexer$Token;
            aload 0
            invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
            checkcast com.oracle.truffle.nfi.Lexer$Token
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      name  
}
Signature: Ljava/lang/Enum<Lcom/oracle/truffle/nfi/Lexer$Token;>;
SourceFile: "Lexer.java"
NestHost: com.oracle.truffle.nfi.Lexer
InnerClasses:
  public final Token = com.oracle.truffle.nfi.Lexer$Token of com.oracle.truffle.nfi.Lexer