class org.graalvm.polybench.PolyBenchLauncher$ArgumentParser
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.graalvm.polybench.PolyBenchLauncher$ArgumentParser
  super_class: java.lang.Object
{
  private final java.util.List<org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer> consumers;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/graalvm/polybench/PolyBenchLauncher$ArgumentConsumer;>;

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.graalvm.polybench.PolyBenchLauncher$ArgumentParser this
         0: .line 85
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 86
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.graalvm.polybench.PolyBenchLauncher$ArgumentParser.consumers:Ljava/util/List;
         2: .line 87
            aload 0 /* this */
            getfield org.graalvm.polybench.PolyBenchLauncher$ArgumentParser.consumers:Ljava/util/List;
            new org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer
            dup
            ldc "--path"
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/graalvm/polybench/PolyBenchLauncher$ArgumentParser.lambda$0(Ljava/lang/String;Lorg/graalvm/polybench/Config;)V (6)
                  (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
            invokespecial org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer.<init>:(Ljava/lang/String;Ljava/util/function/BiConsumer;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 90
            aload 0 /* this */
            getfield org.graalvm.polybench.PolyBenchLauncher$ArgumentParser.consumers:Ljava/util/List;
            new org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer
            dup
            ldc "--mode"
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/graalvm/polybench/PolyBenchLauncher$ArgumentParser.lambda$1(Ljava/lang/String;Lorg/graalvm/polybench/Config;)V (6)
                  (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
            invokespecial org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer.<init>:(Ljava/lang/String;Ljava/util/function/BiConsumer;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 93
            aload 0 /* this */
            getfield org.graalvm.polybench.PolyBenchLauncher$ArgumentParser.consumers:Ljava/util/List;
            new org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer
            dup
            ldc "--metric"
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/graalvm/polybench/PolyBenchLauncher$ArgumentParser.lambda$2(Ljava/lang/String;Lorg/graalvm/polybench/Config;)V (6)
                  (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
            invokespecial org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer.<init>:(Ljava/lang/String;Ljava/util/function/BiConsumer;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 111
            aload 0 /* this */
            getfield org.graalvm.polybench.PolyBenchLauncher$ArgumentParser.consumers:Ljava/util/List;
            new org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer
            dup
            ldc "-w"
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/graalvm/polybench/PolyBenchLauncher$ArgumentParser.lambda$3(Ljava/lang/String;Lorg/graalvm/polybench/Config;)V (6)
                  (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
            invokespecial org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer.<init>:(Ljava/lang/String;Ljava/util/function/BiConsumer;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 114
            aload 0 /* this */
            getfield org.graalvm.polybench.PolyBenchLauncher$ArgumentParser.consumers:Ljava/util/List;
            new org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer
            dup
            ldc "-i"
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/graalvm/polybench/PolyBenchLauncher$ArgumentParser.lambda$4(Ljava/lang/String;Lorg/graalvm/polybench/Config;)V (6)
                  (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
            invokespecial org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer.<init>:(Ljava/lang/String;Ljava/util/function/BiConsumer;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 117
            return
        end local 0 // org.graalvm.polybench.PolyBenchLauncher$ArgumentParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/graalvm/polybench/PolyBenchLauncher$ArgumentParser;

  org.graalvm.polybench.Config parse(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)Lorg/graalvm/polybench/Config;
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.graalvm.polybench.PolyBenchLauncher$ArgumentParser this
        start local 1 // java.util.List arguments
         0: .line 120
            new org.graalvm.polybench.Config
            dup
            invokespecial org.graalvm.polybench.Config.<init>:()V
            astore 2 /* config */
        start local 2 // org.graalvm.polybench.Config config
         1: .line 121
            aload 1 /* arguments */
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 3 /* iterator */
        start local 3 // java.util.ListIterator iterator
         2: .line 122
            goto 10
         3: .line 123
      StackMap locals: org.graalvm.polybench.Config java.util.ListIterator
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* argument */
        start local 4 // java.lang.String argument
         4: .line 124
            aload 0 /* this */
            getfield org.graalvm.polybench.PolyBenchLauncher$ArgumentParser.consumers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: org.graalvm.polybench.PolyBenchLauncher$ArgumentParser java.util.List org.graalvm.polybench.Config java.util.ListIterator java.lang.String top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer
            astore 5 /* consumer */
        start local 5 // org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer consumer
         6: .line 125
            aload 5 /* consumer */
            aload 4 /* argument */
            aload 3 /* iterator */
            aload 2 /* config */
            invokevirtual org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer.consume:(Ljava/lang/String;Ljava/util/Iterator;Lorg/graalvm/polybench/Config;)Z
            ifeq 8
         7: .line 126
            goto 10
        end local 5 // org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer consumer
         8: .line 124
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 129
            aload 2 /* config */
            getfield org.graalvm.polybench.Config.unrecognizedArguments:Ljava/util/List;
            aload 4 /* argument */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String argument
        10: .line 122
      StackMap locals: org.graalvm.polybench.PolyBenchLauncher$ArgumentParser java.util.List org.graalvm.polybench.Config java.util.ListIterator
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 3
        11: .line 131
            aload 2 /* config */
            areturn
        end local 3 // java.util.ListIterator iterator
        end local 2 // org.graalvm.polybench.Config config
        end local 1 // java.util.List arguments
        end local 0 // org.graalvm.polybench.PolyBenchLauncher$ArgumentParser this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/graalvm/polybench/PolyBenchLauncher$ArgumentParser;
            0   12     1  arguments  Ljava/util/List<Ljava/lang/String;>;
            1   12     2     config  Lorg/graalvm/polybench/Config;
            2   12     3   iterator  Ljava/util/ListIterator<Ljava/lang/String;>;
            4   10     4   argument  Ljava/lang/String;
            6    8     5   consumer  Lorg/graalvm/polybench/PolyBenchLauncher$ArgumentConsumer;
    Signature: (Ljava/util/List<Ljava/lang/String;>;)Lorg/graalvm/polybench/Config;
    MethodParameters:
           Name  Flags
      arguments  

  private static void lambda$0(java.lang.String, org.graalvm.polybench.Config);
    descriptor: (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String value
        start local 1 // org.graalvm.polybench.Config config
         0: .line 88
            aload 1 /* config */
            aload 0 /* value */
            putfield org.graalvm.polybench.Config.path:Ljava/lang/String;
         1: .line 89
            return
        end local 1 // org.graalvm.polybench.Config config
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0   value  Ljava/lang/String;
            0    2     1  config  Lorg/graalvm/polybench/Config;

  private static void lambda$1(java.lang.String, org.graalvm.polybench.Config);
    descriptor: (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String value
        start local 1 // org.graalvm.polybench.Config config
         0: .line 91
            aload 1 /* config */
            aload 0 /* value */
            invokestatic org.graalvm.polybench.Config$Mode.parse:(Ljava/lang/String;)Lorg/graalvm/polybench/Config$Mode;
            putfield org.graalvm.polybench.Config.mode:Lorg/graalvm/polybench/Config$Mode;
         1: .line 92
            return
        end local 1 // org.graalvm.polybench.Config config
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0   value  Ljava/lang/String;
            0    2     1  config  Lorg/graalvm/polybench/Config;

  private static void lambda$2(java.lang.String, org.graalvm.polybench.Config);
    descriptor: (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String value
        start local 1 // org.graalvm.polybench.Config config
         0: .line 94
            aload 0 /* value */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
          -1639270661: 1
          -1223649129: 2
           -946128270: 3
              3387192: 4
              default: 13
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 2
            ldc "peak-time"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            goto 13
      StackMap locals:
      StackMap stack:
         2: aload 2
            ldc "compilation-time"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 13
      StackMap locals:
      StackMap stack:
         3: aload 2
            ldc "partial-evaluation-time"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 13
      StackMap locals:
      StackMap stack:
         4: aload 2
            ldc "none"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 13
         5: .line 96
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            new org.graalvm.polybench.PeakTimeMetric
            dup
            invokespecial org.graalvm.polybench.PeakTimeMetric.<init>:()V
            putfield org.graalvm.polybench.Config.metric:Lorg/graalvm/polybench/Metric;
         6: .line 97
            goto 14
         7: .line 99
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            new org.graalvm.polybench.NoMetric
            dup
            invokespecial org.graalvm.polybench.NoMetric.<init>:()V
            putfield org.graalvm.polybench.Config.metric:Lorg/graalvm/polybench/Metric;
         8: .line 100
            goto 14
         9: .line 102
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            new org.graalvm.polybench.CompilationTimeMetric
            dup
            getstatic org.graalvm.polybench.CompilationTimeMetric$MetricType.COMPILATION:Lorg/graalvm/polybench/CompilationTimeMetric$MetricType;
            invokespecial org.graalvm.polybench.CompilationTimeMetric.<init>:(Lorg/graalvm/polybench/CompilationTimeMetric$MetricType;)V
            putfield org.graalvm.polybench.Config.metric:Lorg/graalvm/polybench/Metric;
        10: .line 103
            goto 14
        11: .line 105
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            new org.graalvm.polybench.CompilationTimeMetric
            dup
            getstatic org.graalvm.polybench.CompilationTimeMetric$MetricType.PARTIAL_EVALUATION:Lorg/graalvm/polybench/CompilationTimeMetric$MetricType;
            invokespecial org.graalvm.polybench.CompilationTimeMetric.<init>:(Lorg/graalvm/polybench/CompilationTimeMetric$MetricType;)V
            putfield org.graalvm.polybench.Config.metric:Lorg/graalvm/polybench/Metric;
        12: .line 106
            goto 14
        13: .line 108
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown metric: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* value */
            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
        14: .line 110
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polybench.Config config
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0   value  Ljava/lang/String;
            0   15     1  config  Lorg/graalvm/polybench/Config;

  private static void lambda$3(java.lang.String, org.graalvm.polybench.Config);
    descriptor: (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String value
        start local 1 // org.graalvm.polybench.Config config
         0: .line 112
            aload 1 /* config */
            aload 0 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield org.graalvm.polybench.Config.warmupIterations:I
         1: .line 113
            return
        end local 1 // org.graalvm.polybench.Config config
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0   value  Ljava/lang/String;
            0    2     1  config  Lorg/graalvm/polybench/Config;

  private static void lambda$4(java.lang.String, org.graalvm.polybench.Config);
    descriptor: (Ljava/lang/String;Lorg/graalvm/polybench/Config;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String value
        start local 1 // org.graalvm.polybench.Config config
         0: .line 115
            aload 1 /* config */
            aload 0 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield org.graalvm.polybench.Config.iterations:I
         1: .line 116
            return
        end local 1 // org.graalvm.polybench.Config config
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0   value  Ljava/lang/String;
            0    2     1  config  Lorg/graalvm/polybench/Config;
}
SourceFile: "PolyBenchLauncher.java"
NestHost: org.graalvm.polybench.PolyBenchLauncher
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  final MetricType = org.graalvm.polybench.CompilationTimeMetric$MetricType of org.graalvm.polybench.CompilationTimeMetric
  final Mode = org.graalvm.polybench.Config$Mode of org.graalvm.polybench.Config
  ArgumentConsumer = org.graalvm.polybench.PolyBenchLauncher$ArgumentConsumer of org.graalvm.polybench.PolyBenchLauncher
  ArgumentParser = org.graalvm.polybench.PolyBenchLauncher$ArgumentParser of org.graalvm.polybench.PolyBenchLauncher