public final class com.oracle.truffle.api.test.parser.PEParser
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.test.parser.PEParser
  super_class: java.lang.Object
{
  static final boolean PEPARSER_DIRECT_CALL;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private final java.util.ArrayList<com.oracle.truffle.api.test.parser.Rule<?>> rules;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lcom/oracle/truffle/api/test/parser/Rule<*>;>;

  private com.oracle.truffle.api.test.parser.Rule<?> root;
    descriptor: Lcom/oracle/truffle/api/test/parser/Rule;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/oracle/truffle/api/test/parser/Rule<*>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 542
            ldc "PEParser.directcall"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putstatic com.oracle.truffle.api.test.parser.PEParser.PEPARSER_DIRECT_CALL:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static <T> void replaceRules(com.oracle.truffle.api.test.parser.Element<T>[]);
    descriptor: ([Lcom/oracle/truffle/api/test/parser/Element;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.test.parser.Element[] elements
         0: .line 548
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 5
         2: .line 549
      StackMap locals: int
      StackMap stack:
            aload 0 /* elements */
            iload 1 /* i */
            aaload
            instanceof com.oracle.truffle.api.test.parser.Rule
            ifeq 4
         3: .line 550
            aload 0 /* elements */
            iload 1 /* i */
            new com.oracle.truffle.api.test.parser.CallRule
            dup
            aload 0 /* elements */
            iload 1 /* i */
            aaload
            checkcast com.oracle.truffle.api.test.parser.Rule
            invokespecial com.oracle.truffle.api.test.parser.CallRule.<init>:(Lcom/oracle/truffle/api/test/parser/Rule;)V
            aastore
         4: .line 548
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            aload 0 /* elements */
            arraylength
            if_icmplt 2
        end local 1 // int i
         6: .line 553
            return
        end local 0 // com.oracle.truffle.api.test.parser.Element[] elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  elements  [Lcom/oracle/truffle/api/test/parser/Element;
            1    6     1         i  I
    Signature: <T:Ljava/lang/Object;>([Lcom/oracle/truffle/api/test/parser/Element<TT;>;)V
    MethodParameters:
          Name  Flags
      elements  

  private static <T> com.oracle.truffle.api.test.parser.Element<T> replaceRule(com.oracle.truffle.api.test.parser.Element<T>);
    descriptor: (Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.parser.Element element
         0: .line 556
            aload 0 /* element */
            instanceof com.oracle.truffle.api.test.parser.Rule
            ifeq 2
         1: .line 557
            new com.oracle.truffle.api.test.parser.CallRule
            dup
            aload 0 /* element */
            checkcast com.oracle.truffle.api.test.parser.Rule
            invokespecial com.oracle.truffle.api.test.parser.CallRule.<init>:(Lcom/oracle/truffle/api/test/parser/Rule;)V
            areturn
         2: .line 559
      StackMap locals:
      StackMap stack:
            aload 0 /* element */
            areturn
        end local 0 // com.oracle.truffle.api.test.parser.Element element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  element  Lcom/oracle/truffle/api/test/parser/Element<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/test/parser/Element<TT;>;)Lcom/oracle/truffle/api/test/parser/Element<TT;>;
    MethodParameters:
         Name  Flags
      element  

  public static <T> com.oracle.truffle.api.test.parser.Alternative<T> alt(com.oracle.truffle.api.test.parser.Element<T>[]);
    descriptor: ([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.parser.Element[] options
         0: .line 564
            aload 0 /* options */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRules:([Lcom/oracle/truffle/api/test/parser/Element;)V
         1: .line 565
            new com.oracle.truffle.api.test.parser.Alternative
            dup
            aload 0 /* options */
            invokespecial com.oracle.truffle.api.test.parser.Alternative.<init>:([Lcom/oracle/truffle/api/test/parser/Element;)V
            areturn
        end local 0 // com.oracle.truffle.api.test.parser.Element[] options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  options  [Lcom/oracle/truffle/api/test/parser/Element;
    Signature: <T:Ljava/lang/Object;>([Lcom/oracle/truffle/api/test/parser/Element<TT;>;)Lcom/oracle/truffle/api/test/parser/Alternative<TT;>;
    MethodParameters:
         Name  Flags
      options  

  public static <A, B, R> com.oracle.truffle.api.test.parser.Element<R> seq(com.oracle.truffle.api.test.parser.Element<A>, com.oracle.truffle.api.test.parser.Element<B>, java.util.function.BiFunction<A, B, R>);
    descriptor: (Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.test.parser.Element a
        start local 1 // com.oracle.truffle.api.test.parser.Element b
        start local 2 // java.util.function.BiFunction action
         0: .line 569
            new com.oracle.truffle.api.test.parser.Sequence2
            dup
            aload 2 /* action */
            aload 0 /* a */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 1 /* b */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            invokespecial com.oracle.truffle.api.test.parser.Sequence2.<init>:(Ljava/util/function/BiFunction;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;)V
            areturn
        end local 2 // java.util.function.BiFunction action
        end local 1 // com.oracle.truffle.api.test.parser.Element b
        end local 0 // com.oracle.truffle.api.test.parser.Element a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0       a  Lcom/oracle/truffle/api/test/parser/Element<TA;>;
            0    1     1       b  Lcom/oracle/truffle/api/test/parser/Element<TB;>;
            0    1     2  action  Ljava/util/function/BiFunction<TA;TB;TR;>;
    Signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/oracle/truffle/api/test/parser/Element<TA;>;Lcom/oracle/truffle/api/test/parser/Element<TB;>;Ljava/util/function/BiFunction<TA;TB;TR;>;)Lcom/oracle/truffle/api/test/parser/Element<TR;>;
    MethodParameters:
        Name  Flags
      a       
      b       
      action  

  public static <A, B, C, R> com.oracle.truffle.api.test.parser.Element<R> seq(com.oracle.truffle.api.test.parser.Element<A>, com.oracle.truffle.api.test.parser.Element<B>, com.oracle.truffle.api.test.parser.Element<C>, com.oracle.truffle.api.test.parser.PEParser$Function3<A, B, C, R>);
    descriptor: (Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/PEParser$Function3;)Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.test.parser.Element a
        start local 1 // com.oracle.truffle.api.test.parser.Element b
        start local 2 // com.oracle.truffle.api.test.parser.Element c
        start local 3 // com.oracle.truffle.api.test.parser.PEParser$Function3 action
         0: .line 573
            new com.oracle.truffle.api.test.parser.Sequence3
            dup
            aload 3 /* action */
            aload 0 /* a */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 1 /* b */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 2 /* c */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            invokespecial com.oracle.truffle.api.test.parser.Sequence3.<init>:(Lcom/oracle/truffle/api/test/parser/PEParser$Function3;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;)V
            areturn
        end local 3 // com.oracle.truffle.api.test.parser.PEParser$Function3 action
        end local 2 // com.oracle.truffle.api.test.parser.Element c
        end local 1 // com.oracle.truffle.api.test.parser.Element b
        end local 0 // com.oracle.truffle.api.test.parser.Element a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0       a  Lcom/oracle/truffle/api/test/parser/Element<TA;>;
            0    1     1       b  Lcom/oracle/truffle/api/test/parser/Element<TB;>;
            0    1     2       c  Lcom/oracle/truffle/api/test/parser/Element<TC;>;
            0    1     3  action  Lcom/oracle/truffle/api/test/parser/PEParser$Function3<TA;TB;TC;TR;>;
    Signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;C:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/oracle/truffle/api/test/parser/Element<TA;>;Lcom/oracle/truffle/api/test/parser/Element<TB;>;Lcom/oracle/truffle/api/test/parser/Element<TC;>;Lcom/oracle/truffle/api/test/parser/PEParser$Function3<TA;TB;TC;TR;>;)Lcom/oracle/truffle/api/test/parser/Element<TR;>;
    MethodParameters:
        Name  Flags
      a       
      b       
      c       
      action  

  public static <A, B, C, D, R> com.oracle.truffle.api.test.parser.Element<R> seq(com.oracle.truffle.api.test.parser.Element<A>, com.oracle.truffle.api.test.parser.Element<B>, com.oracle.truffle.api.test.parser.Element<C>, com.oracle.truffle.api.test.parser.Element<D>, com.oracle.truffle.api.test.parser.PEParser$Function4<A, B, C, D, R>);
    descriptor: (Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/PEParser$Function4;)Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.test.parser.Element a
        start local 1 // com.oracle.truffle.api.test.parser.Element b
        start local 2 // com.oracle.truffle.api.test.parser.Element c
        start local 3 // com.oracle.truffle.api.test.parser.Element d
        start local 4 // com.oracle.truffle.api.test.parser.PEParser$Function4 action
         0: .line 577
            new com.oracle.truffle.api.test.parser.Sequence4
            dup
            aload 4 /* action */
            aload 0 /* a */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 1 /* b */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 2 /* c */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 3 /* d */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            invokespecial com.oracle.truffle.api.test.parser.Sequence4.<init>:(Lcom/oracle/truffle/api/test/parser/PEParser$Function4;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;)V
            areturn
        end local 4 // com.oracle.truffle.api.test.parser.PEParser$Function4 action
        end local 3 // com.oracle.truffle.api.test.parser.Element d
        end local 2 // com.oracle.truffle.api.test.parser.Element c
        end local 1 // com.oracle.truffle.api.test.parser.Element b
        end local 0 // com.oracle.truffle.api.test.parser.Element a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0       a  Lcom/oracle/truffle/api/test/parser/Element<TA;>;
            0    1     1       b  Lcom/oracle/truffle/api/test/parser/Element<TB;>;
            0    1     2       c  Lcom/oracle/truffle/api/test/parser/Element<TC;>;
            0    1     3       d  Lcom/oracle/truffle/api/test/parser/Element<TD;>;
            0    1     4  action  Lcom/oracle/truffle/api/test/parser/PEParser$Function4<TA;TB;TC;TD;TR;>;
    Signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;C:Ljava/lang/Object;D:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/oracle/truffle/api/test/parser/Element<TA;>;Lcom/oracle/truffle/api/test/parser/Element<TB;>;Lcom/oracle/truffle/api/test/parser/Element<TC;>;Lcom/oracle/truffle/api/test/parser/Element<TD;>;Lcom/oracle/truffle/api/test/parser/PEParser$Function4<TA;TB;TC;TD;TR;>;)Lcom/oracle/truffle/api/test/parser/Element<TR;>;
    MethodParameters:
        Name  Flags
      a       
      b       
      c       
      d       
      action  

  public static <T> com.oracle.truffle.api.test.parser.Element<com.oracle.truffle.api.test.parser.PELexer$LexerList<T>> rep(com.oracle.truffle.api.test.parser.Element<T>);
    descriptor: (Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.parser.Element element
         0: .line 581
            new com.oracle.truffle.api.test.parser.StackRepetition
            dup
            aload 0 /* element */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            invokespecial com.oracle.truffle.api.test.parser.StackRepetition.<init>:(Lcom/oracle/truffle/api/test/parser/Element;)V
            areturn
        end local 0 // com.oracle.truffle.api.test.parser.Element element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  element  Lcom/oracle/truffle/api/test/parser/Element<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/test/parser/Element<TT;>;)Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PELexer$LexerList<TT;>;>;
    MethodParameters:
         Name  Flags
      element  

  public static <T, ListT, R> com.oracle.truffle.api.test.parser.Repetition<T, ListT, R> rep(com.oracle.truffle.api.test.parser.Element<T>, java.util.function.Supplier<ListT>, java.util.function.BiFunction<ListT, T, ListT>, java.util.function.Function<ListT, R>);
    descriptor: (Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/Supplier;Ljava/util/function/BiFunction;Ljava/util/function/Function;)Lcom/oracle/truffle/api/test/parser/Repetition;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.test.parser.Element element
        start local 1 // java.util.function.Supplier createList
        start local 2 // java.util.function.BiFunction addToList
        start local 3 // java.util.function.Function createResult
         0: .line 585
            new com.oracle.truffle.api.test.parser.Repetition
            dup
            aload 0 /* element */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 1 /* createList */
            aload 2 /* addToList */
            aload 3 /* createResult */
            invokespecial com.oracle.truffle.api.test.parser.Repetition.<init>:(Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/Supplier;Ljava/util/function/BiFunction;Ljava/util/function/Function;)V
            areturn
        end local 3 // java.util.function.Function createResult
        end local 2 // java.util.function.BiFunction addToList
        end local 1 // java.util.function.Supplier createList
        end local 0 // com.oracle.truffle.api.test.parser.Element element
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0       element  Lcom/oracle/truffle/api/test/parser/Element<TT;>;
            0    1     1    createList  Ljava/util/function/Supplier<TListT;>;
            0    1     2     addToList  Ljava/util/function/BiFunction<TListT;TT;TListT;>;
            0    1     3  createResult  Ljava/util/function/Function<TListT;TR;>;
    Signature: <T:Ljava/lang/Object;ListT:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/oracle/truffle/api/test/parser/Element<TT;>;Ljava/util/function/Supplier<TListT;>;Ljava/util/function/BiFunction<TListT;TT;TListT;>;Ljava/util/function/Function<TListT;TR;>;)Lcom/oracle/truffle/api/test/parser/Repetition<TT;TListT;TR;>;
    MethodParameters:
              Name  Flags
      element       
      createList    
      addToList     
      createResult  

  public static <T> com.oracle.truffle.api.test.parser.Element<java.util.Optional<T>> opt(com.oracle.truffle.api.test.parser.Element<T>);
    descriptor: (Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.parser.Element element
         0: .line 589
            new com.oracle.truffle.api.test.parser.OptionalElement
            dup
            aload 0 /* element */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.replaceRule:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$0(Ljava/lang/Object;)Ljava/util/Optional; (6)
                  (Ljava/lang/Object;)Ljava/util/Optional;
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$1()Ljava/util/Optional; (6)
                  ()Ljava/util/Optional;
            invokespecial com.oracle.truffle.api.test.parser.OptionalElement.<init>:(Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/Function;Ljava/util/function/Supplier;)V
            areturn
        end local 0 // com.oracle.truffle.api.test.parser.Element element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  element  Lcom/oracle/truffle/api/test/parser/Element<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/test/parser/Element<TT;>;)Lcom/oracle/truffle/api/test/parser/Element<Ljava/util/Optional<TT;>;>;
    MethodParameters:
         Name  Flags
      element  

  public static com.oracle.truffle.api.test.parser.Element<java.lang.Integer> ref(byte);
    descriptor: (B)Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // byte token
         0: .line 593
            iload 0 /* token */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 1 /* value */
        start local 1 // java.lang.Integer value
         1: .line 594
            new com.oracle.truffle.api.test.parser.TokenReference
            dup
            iload 0 /* token */
            aload 1 /* value */
            invokedynamic apply(Ljava/lang/Integer;)Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$2(Ljava/lang/Integer;I)Ljava/lang/Integer; (6)
                  (I)Ljava/lang/Integer;
            invokespecial com.oracle.truffle.api.test.parser.TokenReference.<init>:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)V
            areturn
        end local 1 // java.lang.Integer value
        end local 0 // byte token
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  token  B
            1    2     1  value  Ljava/lang/Integer;
    Signature: (B)Lcom/oracle/truffle/api/test/parser/Element<Ljava/lang/Integer;>;
    MethodParameters:
       Name  Flags
      token  

  public static <T> com.oracle.truffle.api.test.parser.Element<T> ref(byte, com.oracle.truffle.api.test.parser.PEParser$TokenFunction<T>);
    descriptor: (BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // byte token
        start local 1 // com.oracle.truffle.api.test.parser.PEParser$TokenFunction action
         0: .line 598
            new com.oracle.truffle.api.test.parser.TokenReference
            dup
            iload 0 /* token */
            aload 1 /* action */
            invokespecial com.oracle.truffle.api.test.parser.TokenReference.<init>:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)V
            areturn
        end local 1 // com.oracle.truffle.api.test.parser.PEParser$TokenFunction action
        end local 0 // byte token
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   token  B
            0    1     1  action  Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction<TT;>;
    Signature: <T:Ljava/lang/Object;>(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction<TT;>;)Lcom/oracle/truffle/api/test/parser/Element<TT;>;
    MethodParameters:
        Name  Flags
      token   
      action  

  public <T> com.oracle.truffle.api.test.parser.Rule<T> rule(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.test.parser.PEParser this
        start local 1 // java.lang.String name
         0: .line 602
            new com.oracle.truffle.api.test.parser.Rule
            dup
            aload 1 /* name */
            invokespecial com.oracle.truffle.api.test.parser.Rule.<init>:(Ljava/lang/String;)V
            astore 2 /* rule */
        start local 2 // com.oracle.truffle.api.test.parser.Rule rule
         1: .line 603
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.parser.PEParser.rules:Ljava/util/ArrayList;
            aload 2 /* rule */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 604
            aload 2 /* rule */
            areturn
        end local 2 // com.oracle.truffle.api.test.parser.Rule rule
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.api.test.parser.PEParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/test/parser/PEParser;
            0    3     1  name  Ljava/lang/String;
            1    3     2  rule  Lcom/oracle/truffle/api/test/parser/Rule<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule<TT;>;
    MethodParameters:
      Name  Flags
      name  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.parser.PEParser this
         0: .line 623
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 544
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.api.test.parser.PEParser.rules:Ljava/util/ArrayList;
         2: .line 625
            return
        end local 0 // com.oracle.truffle.api.test.parser.PEParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/test/parser/PEParser;

  public static <A, B> A selectFirst(A, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.Object a
        start local 1 // java.lang.Object b
         0: .line 678
            aload 0 /* a */
            areturn
        end local 1 // java.lang.Object b
        end local 0 // java.lang.Object a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  TA;
            0    1     1     b  TB;
    Signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;>(TA;TB;)TA;
    MethodParameters:
      Name  Flags
      a     
      b     

  public static <A, B> B selectSecond(A, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.Object a
        start local 1 // java.lang.Object b
         0: .line 682
            aload 1 /* b */
            areturn
        end local 1 // java.lang.Object b
        end local 0 // java.lang.Object a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  TA;
            0    1     1     b  TB;
    Signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;>(TA;TB;)TB;
    MethodParameters:
      Name  Flags
      a     
      b     

  public static com.oracle.truffle.api.test.parser.PEParser$BasicNode[] concat(com.oracle.truffle.api.test.parser.PEParser$BasicNode, com.oracle.truffle.api.test.parser.PELexer$LexerList<com.oracle.truffle.api.test.parser.PEParser$BasicNode>);
    descriptor: (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.test.parser.PEParser$BasicNode first
        start local 1 // com.oracle.truffle.api.test.parser.PELexer$LexerList rest
         0: .line 686
            aload 1 /* rest */
            invokevirtual com.oracle.truffle.api.test.parser.PELexer$LexerList.size:()I
            iconst_1
            iadd
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            astore 2 /* result */
        start local 2 // com.oracle.truffle.api.test.parser.PEParser$BasicNode[] result
         1: .line 687
            aload 2 /* result */
            iconst_0
            aload 0 /* first */
            aastore
         2: .line 688
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 689
      StackMap locals: com.oracle.truffle.api.test.parser.PEParser$BasicNode[] int
      StackMap stack:
            aload 2 /* result */
            iload 3 /* i */
            iconst_1
            iadd
            aload 1 /* rest */
            iload 3 /* i */
            invokevirtual com.oracle.truffle.api.test.parser.PELexer$LexerList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.parser.PEParser$BasicNode
            aastore
         5: .line 688
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 1 /* rest */
            invokevirtual com.oracle.truffle.api.test.parser.PELexer$LexerList.size:()I
            if_icmplt 4
        end local 3 // int i
         7: .line 691
            aload 2 /* result */
            areturn
        end local 2 // com.oracle.truffle.api.test.parser.PEParser$BasicNode[] result
        end local 1 // com.oracle.truffle.api.test.parser.PELexer$LexerList rest
        end local 0 // com.oracle.truffle.api.test.parser.PEParser$BasicNode first
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0   first  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            0    8     1    rest  Lcom/oracle/truffle/api/test/parser/PELexer$LexerList<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
            1    8     2  result  [Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            3    7     3       i  I
    Signature: (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;)[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    MethodParameters:
       Name  Flags
      first  
      rest   

  public static com.oracle.truffle.api.test.parser.PEParser create();
    descriptor: ()Lcom/oracle/truffle/api/test/parser/PEParser;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=28, args_size=0
         0: .line 695
            new com.oracle.truffle.api.test.parser.PEParser
            dup
            invokespecial com.oracle.truffle.api.test.parser.PEParser.<init>:()V
            astore 0 /* parser */
        start local 0 // com.oracle.truffle.api.test.parser.PEParser parser
         1: .line 697
            aload 0 /* parser */
            ldc "program"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 1 /* program */
        start local 1 // com.oracle.truffle.api.test.parser.Rule program
         2: .line 698
            aload 0 /* parser */
            ldc "line"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 2 /* line */
        start local 2 // com.oracle.truffle.api.test.parser.Rule line
         3: .line 699
            aload 0 /* parser */
            ldc "statement"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 3 /* statement */
        start local 3 // com.oracle.truffle.api.test.parser.Rule statement
         4: .line 700
            aload 0 /* parser */
            ldc "exprlist"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 4 /* exprlist */
        start local 4 // com.oracle.truffle.api.test.parser.Rule exprlist
         5: .line 701
            aload 0 /* parser */
            ldc "varlist"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 5 /* varlist */
        start local 5 // com.oracle.truffle.api.test.parser.Rule varlist
         6: .line 702
            aload 0 /* parser */
            ldc "expression"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 6 /* expression */
        start local 6 // com.oracle.truffle.api.test.parser.Rule expression
         7: .line 703
            aload 0 /* parser */
            ldc "term"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 7 /* term */
        start local 7 // com.oracle.truffle.api.test.parser.Rule term
         8: .line 704
            aload 0 /* parser */
            ldc "factor"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 8 /* factor */
        start local 8 // com.oracle.truffle.api.test.parser.Rule factor
         9: .line 705
            aload 0 /* parser */
            ldc "vara"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 9 /* vara */
        start local 9 // com.oracle.truffle.api.test.parser.Rule vara
        10: .line 706
            aload 0 /* parser */
            ldc "string"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 10 /* string */
        start local 10 // com.oracle.truffle.api.test.parser.Rule string
        11: .line 707
            aload 0 /* parser */
            ldc "relop"
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.rule:(Ljava/lang/String;)Lcom/oracle/truffle/api/test/parser/Rule;
            astore 11 /* relop */
        start local 11 // com.oracle.truffle.api.test.parser.Rule relop
        12: .line 713
            aload 1 /* program */
            aload 2 /* line */
            aload 2 /* line */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.rep:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
        13: .line 714
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$3(Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        14: .line 713
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        15: .line 716
            aload 2 /* line */
            bipush 21
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.opt:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 3 /* statement */
            bipush 24
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
        16: .line 717
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$Function3;
              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;Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$4(Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Ljava/lang/Integer;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Ljava/lang/Integer;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        17: .line 716
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/PEParser$Function3;)Lcom/oracle/truffle/api/test/parser/Element;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        18: .line 719
            iconst_1
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            aload 4 /* exprlist */
        19: .line 720
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$5(Ljava/lang/Integer;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Ljava/lang/Integer;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        20: .line 719
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 12 /* printStatement */
        start local 12 // com.oracle.truffle.api.test.parser.Element printStatement
        21: .line 721
            aload 6 /* expression */
            aload 11 /* relop */
            aload 6 /* expression */
        22: .line 722
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$Function3;
              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;Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$6(Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        23: .line 721
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/PEParser$Function3;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 13 /* ifCondition */
        start local 13 // com.oracle.truffle.api.test.parser.Element ifCondition
        24: .line 723
            iconst_2
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            aload 13 /* ifCondition */
            iconst_3
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.opt:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 3 /* statement */
        25: .line 724
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$Function4;
              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;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$7(Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        26: .line 723
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/PEParser$Function4;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 14 /* ifStatement */
        start local 14 // com.oracle.truffle.api.test.parser.Element ifStatement
        27: .line 725
            iconst_4
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            bipush 21
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
        28: .line 726
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$8(Ljava/lang/Integer;Ljava/lang/Integer;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Ljava/lang/Integer;Ljava/lang/Integer;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        29: .line 725
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 15 /* gotoStatement */
        start local 15 // com.oracle.truffle.api.test.parser.Element gotoStatement
        30: .line 727
            iconst_5
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            aload 5 /* varlist */
        31: .line 728
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$9(Ljava/lang/Integer;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Ljava/lang/Integer;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        32: .line 727
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 16 /* inputStatement */
        start local 16 // com.oracle.truffle.api.test.parser.Element inputStatement
        33: .line 729
            bipush 6
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.opt:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            aload 9 /* vara */
            bipush 17
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            aload 6 /* expression */
        34: .line 730
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$Function4;
              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;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$10(Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        35: .line 729
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/PEParser$Function4;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 17 /* assignStatement */
        start local 17 // com.oracle.truffle.api.test.parser.Element assignStatement
        36: .line 731
            bipush 7
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            aload 6 /* expression */
        37: .line 732
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$11(Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        38: .line 731
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 18 /* gosubStatement */
        start local 18 // com.oracle.truffle.api.test.parser.Element gosubStatement
        39: .line 733
            bipush 8
        40: .line 734
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$12(I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        41: .line 733
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 19 /* returnStatement */
        start local 19 // com.oracle.truffle.api.test.parser.Element returnStatement
        42: .line 735
            bipush 9
        43: .line 736
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$13(I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        44: .line 735
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 20 /* clearStatement */
        start local 20 // com.oracle.truffle.api.test.parser.Element clearStatement
        45: .line 737
            bipush 10
        46: .line 738
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$14(I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        47: .line 737
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 21 /* listStatement */
        start local 21 // com.oracle.truffle.api.test.parser.Element listStatement
        48: .line 739
            bipush 11
        49: .line 740
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$15(I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        50: .line 739
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 22 /* runStatement */
        start local 22 // com.oracle.truffle.api.test.parser.Element runStatement
        51: .line 741
            bipush 12
        52: .line 742
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$16(I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        53: .line 741
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 23 /* endStatement */
        start local 23 // com.oracle.truffle.api.test.parser.Element endStatement
        54: .line 743
            aload 3 /* statement */
            bipush 11
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            aload 12 /* printStatement */
            aastore
            dup
            iconst_1
            aload 14 /* ifStatement */
            aastore
            dup
            iconst_2
            aload 15 /* gotoStatement */
            aastore
            dup
            iconst_3
            aload 16 /* inputStatement */
            aastore
            dup
            iconst_4
            aload 17 /* assignStatement */
            aastore
            dup
            iconst_5
            aload 18 /* gosubStatement */
            aastore
            dup
            bipush 6
            aload 19 /* returnStatement */
            aastore
            dup
            bipush 7
            aload 20 /* clearStatement */
            aastore
            dup
            bipush 8
            aload 21 /* listStatement */
            aastore
            dup
            bipush 9
            aload 22 /* runStatement */
            aastore
            dup
            bipush 10
            aload 23 /* endStatement */
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        55: .line 745
            bipush 20
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            aload 10 /* string */
            aastore
            dup
            iconst_1
            aload 6 /* expression */
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.selectSecond(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; (6)
                  (Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.rep:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 24 /* exprlistRep */
        start local 24 // com.oracle.truffle.api.test.parser.Element exprlistRep
        56: .line 746
            aload 4 /* exprlist */
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            aload 10 /* string */
            aastore
            dup
            iconst_1
            aload 6 /* expression */
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            aload 24 /* exprlistRep */
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.concat(Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        57: .line 748
            bipush 20
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(B)Lcom/oracle/truffle/api/test/parser/Element;
            aload 9 /* vara */
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.selectSecond(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; (6)
                  (Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.rep:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 25 /* varlistRep */
        start local 25 // com.oracle.truffle.api.test.parser.Element varlistRep
        58: .line 749
            aload 5 /* varlist */
            aload 9 /* vara */
            aload 25 /* varlistRep */
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.concat(Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        59: .line 751
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            bipush 13
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$21(I)Ljava/lang/String; (6)
                  (I)Ljava/lang/String;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_1
            bipush 14
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$22(I)Ljava/lang/String; (6)
                  (I)Ljava/lang/String;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            aload 7 /* term */
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser$TermFactor.<init>(Ljava/lang/String;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V (8)
                  (Ljava/lang/String;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$TermFactor;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.rep:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 26 /* expressionRep */
        start local 26 // com.oracle.truffle.api.test.parser.Element expressionRep
        60: .line 752
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            bipush 13
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$24(I)Ljava/lang/Boolean; (6)
                  (I)Ljava/lang/Boolean;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_1
            bipush 14
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$25(I)Ljava/lang/Boolean; (6)
                  (I)Ljava/lang/Boolean;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.opt:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            astore 27 /* plusOrMinus */
        start local 27 // com.oracle.truffle.api.test.parser.Element plusOrMinus
        61: .line 753
            aload 6 /* expression */
            aload 27 /* plusOrMinus */
            aload 7 /* term */
            aload 26 /* expressionRep */
        62: .line 754
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$Function3;
              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;Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$26(Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        63: .line 753
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/PEParser$Function3;)Lcom/oracle/truffle/api/test/parser/Element;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        64: .line 765
            aload 7 /* term */
            aload 8 /* factor */
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            bipush 15
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$27(I)Ljava/lang/String; (6)
                  (I)Ljava/lang/String;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_1
            bipush 16
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$28(I)Ljava/lang/String; (6)
                  (I)Ljava/lang/String;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            aload 8 /* factor */
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser$TermFactor.<init>(Ljava/lang/String;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V (8)
                  (Ljava/lang/String;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$TermFactor;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.rep:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
        65: .line 766
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$30(Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
        66: .line 765
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        67: .line 773
            aload 8 /* factor */
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            aload 9 /* vara */
            aastore
            dup
            iconst_1
            bipush 21
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$31(I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        68: .line 774
            aload 9 /* vara */
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            bipush 23
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$32(I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_1
            aload 10 /* string */
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        69: .line 775
            aload 10 /* string */
            bipush 22
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$33(I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        70: .line 776
            aload 11 /* relop */
            iconst_5
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
        71: .line 777
            bipush 18
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$34(I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            bipush 19
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$35(I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_1
            bipush 17
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$36(I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.opt:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser$RelOp.choose(Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;Ljava/util/Optional;)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;Ljava/util/Optional;)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_1
        72: .line 778
            bipush 19
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$38(I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            bipush 18
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$39(I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_1
            bipush 17
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$40(I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.opt:(Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Element;
            invokedynamic apply()Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser$RelOp.choose(Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;Ljava/util/Optional;)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;Ljava/util/Optional;)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.seq:(Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;Ljava/util/function/BiFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_2
        73: .line 779
            bipush 17
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$42(I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_3
        74: .line 780
            bipush 13
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$43(I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_4
        75: .line 781
            bipush 14
            invokedynamic apply()Lcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;
              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:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/parser/PEParser.lambda$44(I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp; (6)
                  (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            invokestatic com.oracle.truffle.api.test.parser.PEParser.ref:(BLcom/oracle/truffle/api/test/parser/PEParser$TokenFunction;)Lcom/oracle/truffle/api/test/parser/Element;
            aastore
        76: .line 776
            invokestatic com.oracle.truffle.api.test.parser.PEParser.alt:([Lcom/oracle/truffle/api/test/parser/Element;)Lcom/oracle/truffle/api/test/parser/Alternative;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.define:(Lcom/oracle/truffle/api/test/parser/Element;)V
        77: .line 783
            aload 0 /* parser */
            aload 1 /* program */
            invokevirtual com.oracle.truffle.api.test.parser.PEParser.initialize:(Lcom/oracle/truffle/api/test/parser/Rule;)V
        78: .line 784
            aload 0 /* parser */
            areturn
        end local 27 // com.oracle.truffle.api.test.parser.Element plusOrMinus
        end local 26 // com.oracle.truffle.api.test.parser.Element expressionRep
        end local 25 // com.oracle.truffle.api.test.parser.Element varlistRep
        end local 24 // com.oracle.truffle.api.test.parser.Element exprlistRep
        end local 23 // com.oracle.truffle.api.test.parser.Element endStatement
        end local 22 // com.oracle.truffle.api.test.parser.Element runStatement
        end local 21 // com.oracle.truffle.api.test.parser.Element listStatement
        end local 20 // com.oracle.truffle.api.test.parser.Element clearStatement
        end local 19 // com.oracle.truffle.api.test.parser.Element returnStatement
        end local 18 // com.oracle.truffle.api.test.parser.Element gosubStatement
        end local 17 // com.oracle.truffle.api.test.parser.Element assignStatement
        end local 16 // com.oracle.truffle.api.test.parser.Element inputStatement
        end local 15 // com.oracle.truffle.api.test.parser.Element gotoStatement
        end local 14 // com.oracle.truffle.api.test.parser.Element ifStatement
        end local 13 // com.oracle.truffle.api.test.parser.Element ifCondition
        end local 12 // com.oracle.truffle.api.test.parser.Element printStatement
        end local 11 // com.oracle.truffle.api.test.parser.Rule relop
        end local 10 // com.oracle.truffle.api.test.parser.Rule string
        end local 9 // com.oracle.truffle.api.test.parser.Rule vara
        end local 8 // com.oracle.truffle.api.test.parser.Rule factor
        end local 7 // com.oracle.truffle.api.test.parser.Rule term
        end local 6 // com.oracle.truffle.api.test.parser.Rule expression
        end local 5 // com.oracle.truffle.api.test.parser.Rule varlist
        end local 4 // com.oracle.truffle.api.test.parser.Rule exprlist
        end local 3 // com.oracle.truffle.api.test.parser.Rule statement
        end local 2 // com.oracle.truffle.api.test.parser.Rule line
        end local 1 // com.oracle.truffle.api.test.parser.Rule program
        end local 0 // com.oracle.truffle.api.test.parser.PEParser parser
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            1   79     0           parser  Lcom/oracle/truffle/api/test/parser/PEParser;
            2   79     1          program  Lcom/oracle/truffle/api/test/parser/Rule<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
            3   79     2             line  Lcom/oracle/truffle/api/test/parser/Rule<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
            4   79     3        statement  Lcom/oracle/truffle/api/test/parser/Rule<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
            5   79     4         exprlist  Lcom/oracle/truffle/api/test/parser/Rule<[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
            6   79     5          varlist  Lcom/oracle/truffle/api/test/parser/Rule<[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
            7   79     6       expression  Lcom/oracle/truffle/api/test/parser/Rule<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
            8   79     7             term  Lcom/oracle/truffle/api/test/parser/Rule<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
            9   79     8           factor  Lcom/oracle/truffle/api/test/parser/Rule<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           10   79     9             vara  Lcom/oracle/truffle/api/test/parser/Rule<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           11   79    10           string  Lcom/oracle/truffle/api/test/parser/Rule<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           12   79    11            relop  Lcom/oracle/truffle/api/test/parser/Rule<Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;>;
           21   79    12   printStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           24   79    13      ifCondition  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           27   79    14      ifStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           30   79    15    gotoStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           33   79    16   inputStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           36   79    17  assignStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           39   79    18   gosubStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           42   79    19  returnStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           45   79    20   clearStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           48   79    21    listStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           51   79    22     runStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           54   79    23     endStatement  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;
           56   79    24      exprlistRep  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PELexer$LexerList<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;>;
           58   79    25       varlistRep  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PELexer$LexerList<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;>;
           60   79    26    expressionRep  Lcom/oracle/truffle/api/test/parser/Element<Lcom/oracle/truffle/api/test/parser/PELexer$LexerList<Lcom/oracle/truffle/api/test/parser/PEParser$TermFactor;>;>;
           61   79    27      plusOrMinus  Lcom/oracle/truffle/api/test/parser/Element<Ljava/util/Optional<Ljava/lang/Boolean;>;>;

  private void initialize(com.oracle.truffle.api.test.parser.Rule<?>);
    descriptor: (Lcom/oracle/truffle/api/test/parser/Rule;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.test.parser.PEParser this
        start local 1 // com.oracle.truffle.api.test.parser.Rule newRoot
         0: .line 788
            aload 0 /* this */
            aload 1 /* newRoot */
            putfield com.oracle.truffle.api.test.parser.PEParser.root:Lcom/oracle/truffle/api/test/parser/Rule;
         1: .line 789
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.parser.PEParser.rules:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.oracle.truffle.api.test.parser.PEParser com.oracle.truffle.api.test.parser.Rule top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.parser.Rule
            astore 2 /* rule */
        start local 2 // com.oracle.truffle.api.test.parser.Rule rule
         3: .line 790
            aload 2 /* rule */
            invokevirtual com.oracle.truffle.api.test.parser.Rule.initializeRule:()V
        end local 2 // com.oracle.truffle.api.test.parser.Rule rule
         4: .line 789
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 792
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.parser.PEParser.rules:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.parser.Rule
            astore 2 /* rule */
        start local 2 // com.oracle.truffle.api.test.parser.Rule rule
         7: .line 793
            aload 2 /* rule */
            getfield com.oracle.truffle.api.test.parser.Rule.element:Lcom/oracle/truffle/api/test/parser/Element;
            invokevirtual com.oracle.truffle.api.test.parser.Element.initialize:()V
        end local 2 // com.oracle.truffle.api.test.parser.Rule rule
         8: .line 792
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 796
            return
        end local 1 // com.oracle.truffle.api.test.parser.Rule newRoot
        end local 0 // com.oracle.truffle.api.test.parser.PEParser this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/oracle/truffle/api/test/parser/PEParser;
            0   10     1  newRoot  Lcom/oracle/truffle/api/test/parser/Rule<*>;
            3    4     2     rule  Lcom/oracle/truffle/api/test/parser/Rule<*>;
            7    8     2     rule  Lcom/oracle/truffle/api/test/parser/Rule<*>;
    Signature: (Lcom/oracle/truffle/api/test/parser/Rule<*>;)V
    MethodParameters:
         Name  Flags
      newRoot  

  public java.lang.Object parse(com.oracle.truffle.api.test.parser.PELexer);
    descriptor: (Lcom/oracle/truffle/api/test/parser/PELexer;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.test.parser.PEParser this
        start local 1 // com.oracle.truffle.api.test.parser.PELexer lexer
         0: .line 799
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.parser.PEParser.root:Lcom/oracle/truffle/api/test/parser/Rule;
            invokevirtual com.oracle.truffle.api.test.parser.Rule.getCallTarget:()Lcom/oracle/truffle/api/CallTarget;
            aload 1 /* lexer */
            invokevirtual com.oracle.truffle.api.test.parser.PELexer.asArgumentsArray:()[Ljava/lang/Object;
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.test.parser.PELexer lexer
        end local 0 // com.oracle.truffle.api.test.parser.PEParser this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/test/parser/PEParser;
            0    1     1  lexer  Lcom/oracle/truffle/api/test/parser/PELexer;
    MethodParameters:
       Name  Flags
      lexer  

  private static java.util.Optional lambda$0(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/util/Optional;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object v
         0: .line 589
            aload 0 /* v */
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // java.lang.Object v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  TT;

  private static java.util.Optional lambda$1();
    descriptor: ()Ljava/util/Optional;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 589
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.Integer lambda$2(java.lang.Integer, int);
    descriptor: (Ljava/lang/Integer;I)Ljava/lang/Integer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 1 // int t
         0: .line 594
            aload 0
            areturn
        end local 1 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$3(com.oracle.truffle.api.test.parser.PEParser$BasicNode, com.oracle.truffle.api.test.parser.PELexer$LexerList);
    descriptor: (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.test.parser.PEParser$BasicNode l
        start local 1 // com.oracle.truffle.api.test.parser.PELexer$LexerList r
         0: .line 714
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "program"
            aload 0 /* l */
            aload 1 /* r */
            invokestatic com.oracle.truffle.api.test.parser.PEParser.concat:(Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 1 // com.oracle.truffle.api.test.parser.PELexer$LexerList r
        end local 0 // com.oracle.truffle.api.test.parser.PEParser$BasicNode l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     l  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            0    1     1     r  Lcom/oracle/truffle/api/test/parser/PELexer$LexerList<Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;>;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$4(java.util.Optional, com.oracle.truffle.api.test.parser.PEParser$BasicNode, java.lang.Integer);
    descriptor: (Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Ljava/lang/Integer;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // java.util.Optional n
        start local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode s
        start local 2 // java.lang.Integer c
         0: .line 717
            aload 1 /* s */
            areturn
        end local 2 // java.lang.Integer c
        end local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode s
        end local 0 // java.util.Optional n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  Ljava/util/Optional<Ljava/lang/Integer;>;
            0    1     1     s  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            0    1     2     c  Ljava/lang/Integer;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$5(java.lang.Integer, com.oracle.truffle.api.test.parser.PEParser$BasicNode[]);
    descriptor: (Ljava/lang/Integer;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Integer p
        start local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode[] e
         0: .line 720
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "print"
            aload 1 /* e */
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode[] e
        end local 0 // java.lang.Integer p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     p  Ljava/lang/Integer;
            0    1     1     e  [Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$6(com.oracle.truffle.api.test.parser.PEParser$BasicNode, com.oracle.truffle.api.test.parser.PEParser$RelOp, com.oracle.truffle.api.test.parser.PEParser$BasicNode);
    descriptor: (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.test.parser.PEParser$BasicNode a
        start local 1 // com.oracle.truffle.api.test.parser.PEParser$RelOp r
        start local 2 // com.oracle.truffle.api.test.parser.PEParser$BasicNode b
         0: .line 722
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            aload 1 /* r */
            invokevirtual com.oracle.truffle.api.test.parser.PEParser$RelOp.toString:()Ljava/lang/String;
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            iconst_0
            aload 0 /* a */
            aastore
            dup
            iconst_1
            aload 2 /* b */
            aastore
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 2 // com.oracle.truffle.api.test.parser.PEParser$BasicNode b
        end local 1 // com.oracle.truffle.api.test.parser.PEParser$RelOp r
        end local 0 // com.oracle.truffle.api.test.parser.PEParser$BasicNode a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            0    1     1     r  Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            0    1     2     b  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$7(java.lang.Integer, com.oracle.truffle.api.test.parser.PEParser$BasicNode, java.util.Optional, com.oracle.truffle.api.test.parser.PEParser$BasicNode);
    descriptor: (Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // java.lang.Integer i
        start local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode cond
        start local 2 // java.util.Optional t
        start local 3 // com.oracle.truffle.api.test.parser.PEParser$BasicNode s
         0: .line 724
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "if"
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            iconst_0
            aload 1 /* cond */
            aastore
            dup
            iconst_1
            aload 3 /* s */
            aastore
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 3 // com.oracle.truffle.api.test.parser.PEParser$BasicNode s
        end local 2 // java.util.Optional t
        end local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode cond
        end local 0 // java.lang.Integer i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  Ljava/lang/Integer;
            0    1     1  cond  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            0    1     2     t  Ljava/util/Optional<Ljava/lang/Integer;>;
            0    1     3     s  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$8(java.lang.Integer, java.lang.Integer);
    descriptor: (Ljava/lang/Integer;Ljava/lang/Integer;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Integer g
        start local 1 // java.lang.Integer n
         0: .line 726
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "goto"
            iconst_0
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 1 // java.lang.Integer n
        end local 0 // java.lang.Integer g
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     g  Ljava/lang/Integer;
            0    1     1     n  Ljava/lang/Integer;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$9(java.lang.Integer, com.oracle.truffle.api.test.parser.PEParser$BasicNode[]);
    descriptor: (Ljava/lang/Integer;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Integer i
        start local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode[] v
         0: .line 728
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "input"
            aload 1 /* v */
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode[] v
        end local 0 // java.lang.Integer i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  Ljava/lang/Integer;
            0    1     1     v  [Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$10(java.util.Optional, com.oracle.truffle.api.test.parser.PEParser$BasicNode, java.lang.Integer, com.oracle.truffle.api.test.parser.PEParser$BasicNode);
    descriptor: (Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // java.util.Optional l
        start local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode v
        start local 2 // java.lang.Integer s
        start local 3 // com.oracle.truffle.api.test.parser.PEParser$BasicNode e
         0: .line 730
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            aload 0 /* l */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 1
            ldc "let"
            goto 2
      StackMap locals: java.util.Optional com.oracle.truffle.api.test.parser.PEParser$BasicNode java.lang.Integer com.oracle.truffle.api.test.parser.PEParser$BasicNode
      StackMap stack: new 0 new 0
         1: ldc "assing"
      StackMap locals: java.util.Optional com.oracle.truffle.api.test.parser.PEParser$BasicNode java.lang.Integer com.oracle.truffle.api.test.parser.PEParser$BasicNode
      StackMap stack: new 0 new 0 java.lang.String
         2: iconst_2
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            iconst_0
            aload 1 /* v */
            aastore
            dup
            iconst_1
            aload 3 /* e */
            aastore
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 3 // com.oracle.truffle.api.test.parser.PEParser$BasicNode e
        end local 2 // java.lang.Integer s
        end local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode v
        end local 0 // java.util.Optional l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     l  Ljava/util/Optional<Ljava/lang/Integer;>;
            0    3     1     v  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            0    3     2     s  Ljava/lang/Integer;
            0    3     3     e  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$11(java.lang.Integer, com.oracle.truffle.api.test.parser.PEParser$BasicNode);
    descriptor: (Ljava/lang/Integer;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.lang.Integer g
        start local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode e
         0: .line 732
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "gosub"
            iconst_1
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            iconst_0
            aload 1 /* e */
            aastore
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode e
        end local 0 // java.lang.Integer g
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     g  Ljava/lang/Integer;
            0    1     1     e  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$12(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int t
         0: .line 734
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "return"
            iconst_0
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$13(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int t
         0: .line 736
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "clear"
            iconst_0
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$14(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int t
         0: .line 738
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "list"
            iconst_0
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$15(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int t
         0: .line 740
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "run"
            iconst_0
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$16(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int t
         0: .line 742
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "end"
            iconst_0
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static java.lang.String lambda$21(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 751
            ldc "plus"
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static java.lang.String lambda$22(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 751
            ldc "minus"
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static java.lang.Boolean lambda$24(int);
    descriptor: (I)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 752
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static java.lang.Boolean lambda$25(int);
    descriptor: (I)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 752
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$26(java.util.Optional, com.oracle.truffle.api.test.parser.PEParser$BasicNode, com.oracle.truffle.api.test.parser.PELexer$LexerList);
    descriptor: (Ljava/util/Optional;Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // java.util.Optional pm
        start local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode first
        start local 2 // com.oracle.truffle.api.test.parser.PELexer$LexerList additionalTerms
         0: .line 755
            aload 1 /* first */
            astore 3 /* result */
        start local 3 // com.oracle.truffle.api.test.parser.PEParser$BasicNode result
         1: .line 756
            aload 0 /* pm */
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
         2: .line 757
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "unaryMinus"
            iconst_1
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            iconst_0
            aload 3 /* result */
            aastore
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            astore 3 /* result */
         3: .line 759
      StackMap locals: com.oracle.truffle.api.test.parser.PEParser$BasicNode
      StackMap stack:
            aload 2 /* additionalTerms */
            invokevirtual com.oracle.truffle.api.test.parser.PELexer$LexerList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: java.util.Optional com.oracle.truffle.api.test.parser.PEParser$BasicNode com.oracle.truffle.api.test.parser.PELexer$LexerList com.oracle.truffle.api.test.parser.PEParser$BasicNode top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.parser.PEParser$TermFactor
            astore 4 /* tf */
        start local 4 // com.oracle.truffle.api.test.parser.PEParser$TermFactor tf
         5: .line 760
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            aload 4 /* tf */
            getfield com.oracle.truffle.api.test.parser.PEParser$TermFactor.op:Ljava/lang/String;
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            iconst_0
            aload 3 /* result */
            aastore
            dup
            iconst_1
            aload 4 /* tf */
            getfield com.oracle.truffle.api.test.parser.PEParser$TermFactor.operand:Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            aastore
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            astore 3 /* result */
        end local 4 // com.oracle.truffle.api.test.parser.PEParser$TermFactor tf
         6: .line 759
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 762
            aload 3 /* result */
            areturn
        end local 3 // com.oracle.truffle.api.test.parser.PEParser$BasicNode result
        end local 2 // com.oracle.truffle.api.test.parser.PELexer$LexerList additionalTerms
        end local 1 // com.oracle.truffle.api.test.parser.PEParser$BasicNode first
        end local 0 // java.util.Optional pm
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0               pm  Ljava/util/Optional<Ljava/lang/Boolean;>;
            0    8     1            first  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            0    8     2  additionalTerms  Lcom/oracle/truffle/api/test/parser/PELexer$LexerList<Lcom/oracle/truffle/api/test/parser/PEParser$TermFactor;>;
            1    8     3           result  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            5    6     4               tf  Lcom/oracle/truffle/api/test/parser/PEParser$TermFactor;

  private static java.lang.String lambda$27(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 765
            ldc "mul"
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static java.lang.String lambda$28(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 765
            ldc "div"
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$30(com.oracle.truffle.api.test.parser.PEParser$BasicNode, com.oracle.truffle.api.test.parser.PELexer$LexerList);
    descriptor: (Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;Lcom/oracle/truffle/api/test/parser/PELexer$LexerList;)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.test.parser.PEParser$BasicNode first
        start local 1 // com.oracle.truffle.api.test.parser.PELexer$LexerList additionalFactors
         0: .line 767
            aload 0 /* first */
            astore 2 /* result */
        start local 2 // com.oracle.truffle.api.test.parser.PEParser$BasicNode result
         1: .line 768
            aload 1 /* additionalFactors */
            invokevirtual com.oracle.truffle.api.test.parser.PELexer$LexerList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.oracle.truffle.api.test.parser.PEParser$BasicNode com.oracle.truffle.api.test.parser.PELexer$LexerList com.oracle.truffle.api.test.parser.PEParser$BasicNode top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.test.parser.PEParser$TermFactor
            astore 3 /* tf */
        start local 3 // com.oracle.truffle.api.test.parser.PEParser$TermFactor tf
         3: .line 769
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            aload 3 /* tf */
            getfield com.oracle.truffle.api.test.parser.PEParser$TermFactor.op:Ljava/lang/String;
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            iconst_0
            aload 2 /* result */
            aastore
            dup
            iconst_1
            aload 3 /* tf */
            getfield com.oracle.truffle.api.test.parser.PEParser$TermFactor.operand:Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            aastore
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            astore 2 /* result */
        end local 3 // com.oracle.truffle.api.test.parser.PEParser$TermFactor tf
         4: .line 768
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 771
            aload 2 /* result */
            areturn
        end local 2 // com.oracle.truffle.api.test.parser.PEParser$BasicNode result
        end local 1 // com.oracle.truffle.api.test.parser.PELexer$LexerList additionalFactors
        end local 0 // com.oracle.truffle.api.test.parser.PEParser$BasicNode first
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0              first  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            0    6     1  additionalFactors  Lcom/oracle/truffle/api/test/parser/PELexer$LexerList<Lcom/oracle/truffle/api/test/parser/PEParser$TermFactor;>;
            1    6     2             result  Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
            3    4     3                 tf  Lcom/oracle/truffle/api/test/parser/PEParser$TermFactor;

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$31(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int t
         0: .line 773
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "number"
            iconst_0
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$32(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int t
         0: .line 774
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "name"
            iconst_0
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$BasicNode lambda$33(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int t
         0: .line 775
            new com.oracle.truffle.api.test.parser.PEParser$BasicNode
            dup
            ldc "string"
            iconst_0
            anewarray com.oracle.truffle.api.test.parser.PEParser$BasicNode
            invokespecial com.oracle.truffle.api.test.parser.PEParser$BasicNode.<init>:(Ljava/lang/String;[Lcom/oracle/truffle/api/test/parser/PEParser$BasicNode;)V
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$RelOp lambda$34(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 777
            getstatic com.oracle.truffle.api.test.parser.PEParser$RelOp.LessThan:Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$RelOp lambda$35(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 777
            getstatic com.oracle.truffle.api.test.parser.PEParser$RelOp.NotEquals:Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$RelOp lambda$36(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 777
            getstatic com.oracle.truffle.api.test.parser.PEParser$RelOp.LessThanEquals:Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$RelOp lambda$38(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 778
            getstatic com.oracle.truffle.api.test.parser.PEParser$RelOp.LargerThan:Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$RelOp lambda$39(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 778
            getstatic com.oracle.truffle.api.test.parser.PEParser$RelOp.NotEquals:Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$RelOp lambda$40(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 778
            getstatic com.oracle.truffle.api.test.parser.PEParser$RelOp.LargerThanEquals:Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$RelOp lambda$42(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 779
            getstatic com.oracle.truffle.api.test.parser.PEParser$RelOp.Equals:Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$RelOp lambda$43(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 780
            getstatic com.oracle.truffle.api.test.parser.PEParser$RelOp.Plus:Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I

  private static com.oracle.truffle.api.test.parser.PEParser$RelOp lambda$44(int);
    descriptor: (I)Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int t
         0: .line 781
            getstatic com.oracle.truffle.api.test.parser.PEParser$RelOp.Minus:Lcom/oracle/truffle/api/test/parser/PEParser$RelOp;
            areturn
        end local 0 // int t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  I
}
SourceFile: "PEParser.java"
NestMembers:
  com.oracle.truffle.api.test.parser.PEParser$BasicNode  com.oracle.truffle.api.test.parser.PEParser$Function3  com.oracle.truffle.api.test.parser.PEParser$Function4  com.oracle.truffle.api.test.parser.PEParser$Function5  com.oracle.truffle.api.test.parser.PEParser$RelOp  com.oracle.truffle.api.test.parser.PEParser$TermFactor  com.oracle.truffle.api.test.parser.PEParser$TokenFunction
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public final LexerList = com.oracle.truffle.api.test.parser.PELexer$LexerList of com.oracle.truffle.api.test.parser.PELexer
  BasicNode = com.oracle.truffle.api.test.parser.PEParser$BasicNode of com.oracle.truffle.api.test.parser.PEParser
  public abstract Function3 = com.oracle.truffle.api.test.parser.PEParser$Function3 of com.oracle.truffle.api.test.parser.PEParser
  public abstract Function4 = com.oracle.truffle.api.test.parser.PEParser$Function4 of com.oracle.truffle.api.test.parser.PEParser
  public abstract Function5 = com.oracle.truffle.api.test.parser.PEParser$Function5 of com.oracle.truffle.api.test.parser.PEParser
  public final RelOp = com.oracle.truffle.api.test.parser.PEParser$RelOp of com.oracle.truffle.api.test.parser.PEParser
  TermFactor = com.oracle.truffle.api.test.parser.PEParser$TermFactor of com.oracle.truffle.api.test.parser.PEParser
  public abstract TokenFunction = com.oracle.truffle.api.test.parser.PEParser$TokenFunction of com.oracle.truffle.api.test.parser.PEParser
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles