public final class com.oracle.truffle.sl.launcher.SLMain
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.sl.launcher.SLMain
  super_class: java.lang.Object
{
  private static final java.lang.String SL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "sl"

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.sl.launcher.SLMain this
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.sl.launcher.SLMain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/sl/launcher/SLMain;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 65
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* options */
        start local 2 // java.util.Map options
         1: .line 66
            aconst_null
            astore 3 /* file */
        start local 3 // java.lang.String file
         2: .line 67
            aload 0 /* args */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 9
      StackMap locals: java.lang.String[] top java.util.Map java.lang.String top int int java.lang.String[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* arg */
        start local 4 // java.lang.String arg
         4: .line 68
            aload 2 /* options */
            aload 4 /* arg */
            invokestatic com.oracle.truffle.sl.launcher.SLMain.parseOption:(Ljava/util/Map;Ljava/lang/String;)Z
            ifeq 6
         5: .line 69
            goto 8
         6: .line 71
      StackMap locals: java.lang.String[] top java.util.Map java.lang.String java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 3 /* file */
            ifnonnull 8
         7: .line 72
            aload 4 /* arg */
            astore 3 /* file */
        end local 4 // java.lang.String arg
         8: .line 67
      StackMap locals: java.lang.String[] top java.util.Map java.lang.String top int int java.lang.String[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         9: iload 5
            iload 6
            if_icmplt 3
        10: .line 77
            aload 3 /* file */
            ifnonnull 13
        11: .line 79
            ldc "sl"
            new java.io.InputStreamReader
            dup
            getstatic java.lang.System.in:Ljava/io/InputStream;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            ldc "<stdin>"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/Reader;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
        12: .line 81
            goto 14
        end local 1 // org.graalvm.polyglot.Source source
        13: .line 82
      StackMap locals: java.lang.String[] top java.util.Map java.lang.String
      StackMap stack:
            ldc "sl"
            new java.io.File
            dup
            aload 3 /* file */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/File;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
        14: .line 85
      StackMap locals: java.lang.String[] org.graalvm.polyglot.Source java.util.Map java.lang.String
      StackMap stack:
            aload 1 /* source */
            getstatic java.lang.System.in:Ljava/io/InputStream;
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 2 /* options */
            invokestatic com.oracle.truffle.sl.launcher.SLMain.executeSource:(Lorg/graalvm/polyglot/Source;Ljava/io/InputStream;Ljava/io/PrintStream;Ljava/util/Map;)I
            invokestatic java.lang.System.exit:(I)V
        15: .line 86
            return
        end local 3 // java.lang.String file
        end local 2 // java.util.Map options
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     args  [Ljava/lang/String;
           12   13     1   source  Lorg/graalvm/polyglot/Source;
           14   16     1   source  Lorg/graalvm/polyglot/Source;
            1   16     2  options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            2   16     3     file  Ljava/lang/String;
            4    8     4      arg  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      args  

  private static int executeSource(org.graalvm.polyglot.Source, java.io.InputStream, java.io.PrintStream, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Lorg/graalvm/polyglot/Source;Ljava/io/InputStream;Ljava/io/PrintStream;Ljava/util/Map;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.graalvm.polyglot.Source source
        start local 1 // java.io.InputStream in
        start local 2 // java.io.PrintStream out
        start local 3 // java.util.Map options
         0: .line 90
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            astore 5 /* err */
        start local 5 // java.io.PrintStream err
         1: .line 92
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "sl"
            aastore
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            aload 1 /* in */
            invokevirtual org.graalvm.polyglot.Context$Builder.in:(Ljava/io/InputStream;)Lorg/graalvm/polyglot/Context$Builder;
            aload 2 /* out */
            invokevirtual org.graalvm.polyglot.Context$Builder.out:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Context$Builder;
            aload 3 /* options */
            invokevirtual org.graalvm.polyglot.Context$Builder.options:(Ljava/util/Map;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         2: .line 93
            goto 6
        end local 4 // org.graalvm.polyglot.Context context
      StackMap locals: org.graalvm.polyglot.Source java.io.InputStream java.io.PrintStream java.util.Map top java.io.PrintStream
      StackMap stack: java.lang.IllegalArgumentException
         3: astore 6 /* e */
        start local 6 // java.lang.IllegalArgumentException e
         4: .line 94
            aload 5 /* err */
            aload 6 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 95
            iconst_1
            ireturn
        end local 6 // java.lang.IllegalArgumentException e
        start local 4 // org.graalvm.polyglot.Context context
         6: .line 97
      StackMap locals: org.graalvm.polyglot.Source java.io.InputStream java.io.PrintStream java.util.Map org.graalvm.polyglot.Context java.io.PrintStream
      StackMap stack:
            aload 2 /* out */
            new java.lang.StringBuilder
            dup
            ldc "== running on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 100
            aload 4 /* context */
            aload 0 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* result */
        start local 6 // org.graalvm.polyglot.Value result
         8: .line 101
            aload 4 /* context */
            ldc "sl"
            invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            ldc "main"
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            ifnonnull 12
         9: .line 102
            aload 5 /* err */
            ldc "No function main() defined in SL source file."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 118
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        11: .line 103
            iconst_1
            ireturn
        12: .line 105
      StackMap locals: org.graalvm.polyglot.Value
      StackMap stack:
            aload 6 /* result */
            invokevirtual org.graalvm.polyglot.Value.isNull:()Z
            ifne 14
        13: .line 106
            aload 2 /* out */
            aload 6 /* result */
            invokevirtual org.graalvm.polyglot.Value.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 118
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        15: .line 108
            iconst_0
            ireturn
        end local 6 // org.graalvm.polyglot.Value result
        16: .line 109
      StackMap locals: org.graalvm.polyglot.Source java.io.InputStream java.io.PrintStream java.util.Map org.graalvm.polyglot.Context java.io.PrintStream
      StackMap stack: org.graalvm.polyglot.PolyglotException
            astore 6 /* ex */
        start local 6 // org.graalvm.polyglot.PolyglotException ex
        17: .line 110
            aload 6 /* ex */
            invokevirtual org.graalvm.polyglot.PolyglotException.isInternalError:()Z
            ifeq 20
        18: .line 112
            aload 6 /* ex */
            invokevirtual org.graalvm.polyglot.PolyglotException.printStackTrace:()V
        19: .line 113
            goto 21
        20: .line 114
      StackMap locals: org.graalvm.polyglot.PolyglotException
      StackMap stack:
            aload 5 /* err */
            aload 6 /* ex */
            invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 118
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        22: .line 116
            iconst_1
            ireturn
        end local 6 // org.graalvm.polyglot.PolyglotException ex
        23: .line 117
      StackMap locals: org.graalvm.polyglot.Source java.io.InputStream java.io.PrintStream java.util.Map org.graalvm.polyglot.Context java.io.PrintStream
      StackMap stack: java.lang.Throwable
            astore 7
        24: .line 118
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        25: .line 119
            aload 7
            athrow
        end local 5 // java.io.PrintStream err
        end local 4 // org.graalvm.polyglot.Context context
        end local 3 // java.util.Map options
        end local 2 // java.io.PrintStream out
        end local 1 // java.io.InputStream in
        end local 0 // org.graalvm.polyglot.Source source
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0   source  Lorg/graalvm/polyglot/Source;
            0   26     1       in  Ljava/io/InputStream;
            0   26     2      out  Ljava/io/PrintStream;
            0   26     3  options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            2    3     4  context  Lorg/graalvm/polyglot/Context;
            6   26     4  context  Lorg/graalvm/polyglot/Context;
            1   26     5      err  Ljava/io/PrintStream;
            4    6     6        e  Ljava/lang/IllegalArgumentException;
            8   16     6   result  Lorg/graalvm/polyglot/Value;
           17   23     6       ex  Lorg/graalvm/polyglot/PolyglotException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.IllegalArgumentException
           7    10      16  Class org.graalvm.polyglot.PolyglotException
          12    14      16  Class org.graalvm.polyglot.PolyglotException
           7    10      23  any
          12    14      23  any
          16    21      23  any
    Signature: (Lorg/graalvm/polyglot/Source;Ljava/io/InputStream;Ljava/io/PrintStream;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)I
    MethodParameters:
         Name  Flags
      source   
      in       
      out      
      options  

  private static boolean parseOption(java.util.Map<java.lang.String, java.lang.String>, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // java.util.Map options
        start local 1 // java.lang.String arg
         0: .line 123
            aload 1 /* arg */
            invokevirtual java.lang.String.length:()I
            iconst_2
            if_icmple 1
            aload 1 /* arg */
            ldc "--"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 124
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 126
      StackMap locals:
      StackMap stack:
            aload 1 /* arg */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* eqIdx */
        start local 2 // int eqIdx
         3: .line 129
            iload 2 /* eqIdx */
            ifge 7
         4: .line 130
            aload 1 /* arg */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* key */
        start local 3 // java.lang.String key
         5: .line 131
            aconst_null
            astore 4 /* value */
        start local 4 // java.lang.String value
         6: .line 132
            goto 9
        end local 4 // java.lang.String value
        end local 3 // java.lang.String key
         7: .line 133
      StackMap locals: int
      StackMap stack:
            aload 1 /* arg */
            iconst_2
            iload 2 /* eqIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* key */
        start local 3 // java.lang.String key
         8: .line 134
            aload 1 /* arg */
            iload 2 /* eqIdx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* value */
        start local 4 // java.lang.String value
         9: .line 137
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 4 /* value */
            ifnonnull 11
        10: .line 138
            ldc "true"
            astore 4 /* value */
        11: .line 140
      StackMap locals:
      StackMap stack:
            aload 3 /* key */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            istore 5 /* index */
        start local 5 // int index
        12: .line 141
            aload 3 /* key */
            astore 6 /* group */
        start local 6 // java.lang.String group
        13: .line 142
            iload 5 /* index */
            iflt 15
        14: .line 143
            aload 6 /* group */
            iconst_0
            iload 5 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* group */
        15: .line 145
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* options */
            aload 3 /* key */
            aload 4 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 146
            iconst_1
            ireturn
        end local 6 // java.lang.String group
        end local 5 // int index
        end local 4 // java.lang.String value
        end local 3 // java.lang.String key
        end local 2 // int eqIdx
        end local 1 // java.lang.String arg
        end local 0 // java.util.Map options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0  options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   17     1      arg  Ljava/lang/String;
            3   17     2    eqIdx  I
            5    7     3      key  Ljava/lang/String;
            8   17     3      key  Ljava/lang/String;
            6    7     4    value  Ljava/lang/String;
            9   17     4    value  Ljava/lang/String;
           12   17     5    index  I
           13   17     6    group  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/String;)Z
    MethodParameters:
         Name  Flags
      options  
      arg      
}
SourceFile: "SLMain.java"
InnerClasses:
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
  public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source