public class org.h2.bnf.RuleList implements org.h2.bnf.Rule
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.bnf.RuleList
  super_class: java.lang.Object
{
  private final boolean or;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.ArrayList<org.h2.bnf.Rule> list;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/h2/bnf/Rule;>;

  private boolean mapSet;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.h2.bnf.Rule, org.h2.bnf.Rule, boolean);
    descriptor: (Lorg/h2/bnf/Rule;Lorg/h2/bnf/Rule;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.h2.bnf.RuleList this
        start local 1 // org.h2.bnf.Rule first
        start local 2 // org.h2.bnf.Rule next
        start local 3 // boolean or
         0: .line 22
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 23
            aload 0 /* this */
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            putfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
         2: .line 24
            aload 1 /* first */
            instanceof org.h2.bnf.RuleList
            ifeq 5
            aload 1 /* first */
            checkcast org.h2.bnf.RuleList
            getfield org.h2.bnf.RuleList.or:Z
            iload 3 /* or */
            if_icmpne 5
         3: .line 25
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            aload 1 /* first */
            checkcast org.h2.bnf.RuleList
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 26
            goto 6
         5: .line 27
      StackMap locals: org.h2.bnf.RuleList org.h2.bnf.Rule org.h2.bnf.Rule int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            aload 1 /* first */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 29
      StackMap locals:
      StackMap stack:
            aload 2 /* next */
            instanceof org.h2.bnf.RuleList
            ifeq 9
            aload 2 /* next */
            checkcast org.h2.bnf.RuleList
            getfield org.h2.bnf.RuleList.or:Z
            iload 3 /* or */
            if_icmpne 9
         7: .line 30
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            aload 2 /* next */
            checkcast org.h2.bnf.RuleList
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 31
            goto 10
         9: .line 32
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            aload 2 /* next */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        10: .line 34
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* or */
            putfield org.h2.bnf.RuleList.or:Z
        11: .line 35
            return
        end local 3 // boolean or
        end local 2 // org.h2.bnf.Rule next
        end local 1 // org.h2.bnf.Rule first
        end local 0 // org.h2.bnf.RuleList this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lorg/h2/bnf/RuleList;
            0   12     1  first  Lorg/h2/bnf/Rule;
            0   12     2   next  Lorg/h2/bnf/Rule;
            0   12     3     or  Z
    MethodParameters:
       Name  Flags
      first  
      next   
      or     

  public void accept(org.h2.bnf.BnfVisitor);
    descriptor: (Lorg/h2/bnf/BnfVisitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.bnf.RuleList this
        start local 1 // org.h2.bnf.BnfVisitor visitor
         0: .line 39
            aload 1 /* visitor */
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.or:Z
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            invokeinterface org.h2.bnf.BnfVisitor.visitRuleList:(ZLjava/util/ArrayList;)V
         1: .line 40
            return
        end local 1 // org.h2.bnf.BnfVisitor visitor
        end local 0 // org.h2.bnf.RuleList this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/h2/bnf/RuleList;
            0    2     1  visitor  Lorg/h2/bnf/BnfVisitor;
    MethodParameters:
         Name  Flags
      visitor  

  public void setLinks(java.util.HashMap<java.lang.String, org.h2.bnf.RuleHead>);
    descriptor: (Ljava/util/HashMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.h2.bnf.RuleList this
        start local 1 // java.util.HashMap ruleMap
         0: .line 44
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.mapSet:Z
            ifne 6
         1: .line 45
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.h2.bnf.RuleList java.util.HashMap top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.bnf.Rule
            astore 2 /* r */
        start local 2 // org.h2.bnf.Rule r
         3: .line 46
            aload 2 /* r */
            aload 1 /* ruleMap */
            invokeinterface org.h2.bnf.Rule.setLinks:(Ljava/util/HashMap;)V
        end local 2 // org.h2.bnf.Rule r
         4: .line 45
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 48
            aload 0 /* this */
            iconst_1
            putfield org.h2.bnf.RuleList.mapSet:Z
         6: .line 50
      StackMap locals: org.h2.bnf.RuleList java.util.HashMap
      StackMap stack:
            return
        end local 1 // java.util.HashMap ruleMap
        end local 0 // org.h2.bnf.RuleList this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/h2/bnf/RuleList;
            0    7     1  ruleMap  Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/bnf/RuleHead;>;
            3    4     2        r  Lorg/h2/bnf/Rule;
    Signature: (Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/bnf/RuleHead;>;)V
    MethodParameters:
         Name  Flags
      ruleMap  

  public boolean autoComplete(org.h2.bnf.Sentence);
    descriptor: (Lorg/h2/bnf/Sentence;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.h2.bnf.RuleList this
        start local 1 // org.h2.bnf.Sentence sentence
         0: .line 54
            aload 1 /* sentence */
            invokevirtual org.h2.bnf.Sentence.stopIfRequired:()V
         1: .line 55
            aload 1 /* sentence */
            invokevirtual org.h2.bnf.Sentence.getQuery:()Ljava/lang/String;
            astore 2 /* old */
        start local 2 // java.lang.String old
         2: .line 56
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.or:Z
            ifeq 10
         3: .line 57
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: org.h2.bnf.RuleList org.h2.bnf.Sentence java.lang.String top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.bnf.Rule
            astore 3 /* r */
        start local 3 // org.h2.bnf.Rule r
         5: .line 58
            aload 1 /* sentence */
            aload 2 /* old */
            invokevirtual org.h2.bnf.Sentence.setQuery:(Ljava/lang/String;)V
         6: .line 59
            aload 3 /* r */
            aload 1 /* sentence */
            invokeinterface org.h2.bnf.Rule.autoComplete:(Lorg/h2/bnf/Sentence;)Z
            ifeq 8
         7: .line 60
            iconst_1
            ireturn
        end local 3 // org.h2.bnf.Rule r
         8: .line 57
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 63
            iconst_0
            ireturn
        10: .line 65
      StackMap locals: org.h2.bnf.RuleList org.h2.bnf.Sentence java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.bnf.RuleList.list:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: org.h2.bnf.RuleList org.h2.bnf.Sentence java.lang.String top java.util.Iterator
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.bnf.Rule
            astore 3 /* r */
        start local 3 // org.h2.bnf.Rule r
        12: .line 66
            aload 3 /* r */
            aload 1 /* sentence */
            invokeinterface org.h2.bnf.Rule.autoComplete:(Lorg/h2/bnf/Sentence;)Z
            ifne 15
        13: .line 67
            aload 1 /* sentence */
            aload 2 /* old */
            invokevirtual org.h2.bnf.Sentence.setQuery:(Ljava/lang/String;)V
        14: .line 68
            iconst_0
            ireturn
        end local 3 // org.h2.bnf.Rule r
        15: .line 65
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 71
            iconst_1
            ireturn
        end local 2 // java.lang.String old
        end local 1 // org.h2.bnf.Sentence sentence
        end local 0 // org.h2.bnf.RuleList this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lorg/h2/bnf/RuleList;
            0   17     1  sentence  Lorg/h2/bnf/Sentence;
            2   17     2       old  Ljava/lang/String;
            5    8     3         r  Lorg/h2/bnf/Rule;
           12   15     3         r  Lorg/h2/bnf/Rule;
    MethodParameters:
          Name  Flags
      sentence  
}
SourceFile: "RuleList.java"