final class com.oracle.truffle.api.test.parser.Sequence2<T, A, B> extends com.oracle.truffle.api.test.parser.SequenceBase<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.test.parser.Sequence2
  super_class: com.oracle.truffle.api.test.parser.SequenceBase
{
  private com.oracle.truffle.api.test.parser.Element<A> a;
    descriptor: Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/oracle/truffle/api/test/parser/Element<TA;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.api.test.parser.Element<B> b;
    descriptor: Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/oracle/truffle/api/test/parser/Element<TB;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private final java.util.function.BiFunction<A, B, T> action;
    descriptor: Ljava/util/function/BiFunction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/function/BiFunction<TA;TB;TT;>;

  void <init>(java.util.function.BiFunction<A, B, T>, com.oracle.truffle.api.test.parser.Element<A>, com.oracle.truffle.api.test.parser.Element<B>);
    descriptor: (Ljava/util/function/BiFunction;Lcom/oracle/truffle/api/test/parser/Element;Lcom/oracle/truffle/api/test/parser/Element;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.test.parser.Sequence2 this
        start local 1 // java.util.function.BiFunction action
        start local 2 // com.oracle.truffle.api.test.parser.Element a
        start local 3 // com.oracle.truffle.api.test.parser.Element b
         0: .line 289
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.parser.SequenceBase.<init>:()V
         1: .line 290
            aload 0 /* this */
            aload 1 /* action */
            putfield com.oracle.truffle.api.test.parser.Sequence2.action:Ljava/util/function/BiFunction;
         2: .line 291
            aload 0 /* this */
            aload 2 /* a */
            putfield com.oracle.truffle.api.test.parser.Sequence2.a:Lcom/oracle/truffle/api/test/parser/Element;
         3: .line 292
            aload 0 /* this */
            aload 3 /* b */
            putfield com.oracle.truffle.api.test.parser.Sequence2.b:Lcom/oracle/truffle/api/test/parser/Element;
         4: .line 293
            return
        end local 3 // com.oracle.truffle.api.test.parser.Element b
        end local 2 // com.oracle.truffle.api.test.parser.Element a
        end local 1 // java.util.function.BiFunction action
        end local 0 // com.oracle.truffle.api.test.parser.Sequence2 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/api/test/parser/Sequence2<TT;TA;TB;>;
            0    5     1  action  Ljava/util/function/BiFunction<TA;TB;TT;>;
            0    5     2       a  Lcom/oracle/truffle/api/test/parser/Element<TA;>;
            0    5     3       b  Lcom/oracle/truffle/api/test/parser/Element<TB;>;
    Signature: (Ljava/util/function/BiFunction<TA;TB;TT;>;Lcom/oracle/truffle/api/test/parser/Element<TA;>;Lcom/oracle/truffle/api/test/parser/Element<TB;>;)V
    MethodParameters:
        Name  Flags
      action  
      a       
      b       

  protected com.oracle.truffle.api.test.parser.Element<?>[] elements();
    descriptor: ()[Lcom/oracle/truffle/api/test/parser/Element;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.parser.Sequence2 this
         0: .line 297
            iconst_2
            anewarray com.oracle.truffle.api.test.parser.Element
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.parser.Sequence2.a:Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.parser.Sequence2.b:Lcom/oracle/truffle/api/test/parser/Element;
            aastore
            areturn
        end local 0 // com.oracle.truffle.api.test.parser.Sequence2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/test/parser/Sequence2<TT;TA;TB;>;
    Signature: ()[Lcom/oracle/truffle/api/test/parser/Element<*>;

  public T consume(com.oracle.truffle.api.test.parser.PELexer);
    descriptor: (Lcom/oracle/truffle/api/test/parser/PELexer;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.test.parser.Sequence2 this
        start local 1 // com.oracle.truffle.api.test.parser.PELexer lexer
         0: .line 302
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.parser.Sequence2.action:Ljava/util/function/BiFunction;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.parser.Sequence2.a:Lcom/oracle/truffle/api/test/parser/Element;
            aload 1 /* lexer */
            invokevirtual com.oracle.truffle.api.test.parser.Element.consume:(Lcom/oracle/truffle/api/test/parser/PELexer;)Ljava/lang/Object;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.parser.Sequence2.b:Lcom/oracle/truffle/api/test/parser/Element;
            aload 1 /* lexer */
            invokevirtual com.oracle.truffle.api.test.parser.Element.consume:(Lcom/oracle/truffle/api/test/parser/PELexer;)Ljava/lang/Object;
            invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;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.Sequence2 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/test/parser/Sequence2<TT;TA;TB;>;
            0    1     1  lexer  Lcom/oracle/truffle/api/test/parser/PELexer;
    Signature: (Lcom/oracle/truffle/api/test/parser/PELexer;)TT;
    MethodParameters:
       Name  Flags
      lexer  
}
Signature: <T:Ljava/lang/Object;A:Ljava/lang/Object;B:Ljava/lang/Object;>Lcom/oracle/truffle/api/test/parser/SequenceBase<TT;>;
SourceFile: "PEParser.java"
InnerClasses:
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node