public class org.antlr.v4.semantics.UseDefAnalyzer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.antlr.v4.semantics.UseDefAnalyzer
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.antlr.v4.semantics.UseDefAnalyzer this
         0: .line 29
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.antlr.v4.semantics.UseDefAnalyzer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/antlr/v4/semantics/UseDefAnalyzer;

  public static void trackTokenRuleRefsInActions(org.antlr.v4.tool.Grammar);
    descriptor: (Lorg/antlr/v4/tool/Grammar;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=1
        start local 0 // org.antlr.v4.tool.Grammar g
         0: .line 32
            aload 0 /* g */
            getfield org.antlr.v4.tool.Grammar.rules:Lorg/antlr/v4/misc/OrderedHashMap;
            invokevirtual org.antlr.v4.misc.OrderedHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 12
      StackMap locals: org.antlr.v4.tool.Grammar top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.antlr.v4.tool.Rule
            astore 1 /* r */
        start local 1 // org.antlr.v4.tool.Rule r
         2: .line 33
            iconst_1
            istore 3 /* i */
        start local 3 // int i
         3: goto 11
         4: .line 34
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.tool.Rule java.util.Iterator int
      StackMap stack:
            aload 1 /* r */
            getfield org.antlr.v4.tool.Rule.alt:[Lorg/antlr/v4/tool/Alternative;
            iload 3 /* i */
            aaload
            astore 4 /* alt */
        start local 4 // org.antlr.v4.tool.Alternative alt
         5: .line 35
            aload 4 /* alt */
            getfield org.antlr.v4.tool.Alternative.actions:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 9
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.tool.Rule java.util.Iterator int org.antlr.v4.tool.Alternative top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.antlr.v4.tool.ast.ActionAST
            astore 5 /* a */
        start local 5 // org.antlr.v4.tool.ast.ActionAST a
         7: .line 36
            new org.antlr.v4.semantics.ActionSniffer
            dup
            aload 0 /* g */
            aload 1 /* r */
            aload 4 /* alt */
            aload 5 /* a */
            aload 5 /* a */
            getfield org.antlr.v4.tool.ast.ActionAST.token:Lorg/antlr/runtime/Token;
            invokespecial org.antlr.v4.semantics.ActionSniffer.<init>:(Lorg/antlr/v4/tool/Grammar;Lorg/antlr/v4/tool/Rule;Lorg/antlr/v4/tool/Alternative;Lorg/antlr/v4/tool/ast/ActionAST;Lorg/antlr/runtime/Token;)V
            astore 7 /* sniffer */
        start local 7 // org.antlr.v4.semantics.ActionSniffer sniffer
         8: .line 37
            aload 7 /* sniffer */
            invokevirtual org.antlr.v4.semantics.ActionSniffer.examineAction:()V
        end local 7 // org.antlr.v4.semantics.ActionSniffer sniffer
        end local 5 // org.antlr.v4.tool.ast.ActionAST a
         9: .line 35
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 4 // org.antlr.v4.tool.Alternative alt
        10: .line 33
            iinc 3 /* i */ 1
      StackMap locals: org.antlr.v4.tool.Grammar org.antlr.v4.tool.Rule java.util.Iterator int
      StackMap stack:
        11: iload 3 /* i */
            aload 1 /* r */
            getfield org.antlr.v4.tool.Rule.numberOfAlts:I
            if_icmple 4
        end local 3 // int i
        end local 1 // org.antlr.v4.tool.Rule r
        12: .line 32
      StackMap locals: org.antlr.v4.tool.Grammar top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        13: .line 41
            return
        end local 0 // org.antlr.v4.tool.Grammar g
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0        g  Lorg/antlr/v4/tool/Grammar;
            2   12     1        r  Lorg/antlr/v4/tool/Rule;
            3   12     3        i  I
            5   10     4      alt  Lorg/antlr/v4/tool/Alternative;
            7    9     5        a  Lorg/antlr/v4/tool/ast/ActionAST;
            8    9     7  sniffer  Lorg/antlr/v4/semantics/ActionSniffer;
    MethodParameters:
      Name  Flags
      g     

  public static boolean actionIsContextDependent(org.antlr.v4.tool.ast.ActionAST);
    descriptor: (Lorg/antlr/v4/tool/ast/ActionAST;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.antlr.v4.tool.ast.ActionAST actionAST
         0: .line 44
            new org.antlr.runtime.ANTLRStringStream
            dup
            aload 0 /* actionAST */
            getfield org.antlr.v4.tool.ast.ActionAST.token:Lorg/antlr/runtime/Token;
            invokeinterface org.antlr.runtime.Token.getText:()Ljava/lang/String;
            invokespecial org.antlr.runtime.ANTLRStringStream.<init>:(Ljava/lang/String;)V
            astore 1 /* in */
        start local 1 // org.antlr.runtime.ANTLRStringStream in
         1: .line 45
            aload 1 /* in */
            aload 0 /* actionAST */
            getfield org.antlr.v4.tool.ast.ActionAST.token:Lorg/antlr/runtime/Token;
            invokeinterface org.antlr.runtime.Token.getLine:()I
            invokevirtual org.antlr.runtime.ANTLRStringStream.setLine:(I)V
         2: .line 46
            aload 1 /* in */
            aload 0 /* actionAST */
            getfield org.antlr.v4.tool.ast.ActionAST.token:Lorg/antlr/runtime/Token;
            invokeinterface org.antlr.runtime.Token.getCharPositionInLine:()I
            invokevirtual org.antlr.runtime.ANTLRStringStream.setCharPositionInLine:(I)V
         3: .line 47
            iconst_1
            newarray 4
            astore 2 /* dependent */
        start local 2 // boolean[] dependent
         4: .line 48
            new org.antlr.v4.semantics.UseDefAnalyzer$1
            dup
            aload 2 /* dependent */
            invokespecial org.antlr.v4.semantics.UseDefAnalyzer$1.<init>:([Z)V
            astore 3 /* listener */
        start local 3 // org.antlr.v4.parse.ActionSplitterListener listener
         5: .line 62
            new org.antlr.v4.parse.ActionSplitter
            dup
            aload 1 /* in */
            aload 3 /* listener */
            invokespecial org.antlr.v4.parse.ActionSplitter.<init>:(Lorg/antlr/runtime/CharStream;Lorg/antlr/v4/parse/ActionSplitterListener;)V
            astore 4 /* splitter */
        start local 4 // org.antlr.v4.parse.ActionSplitter splitter
         6: .line 64
            aload 4 /* splitter */
            invokevirtual org.antlr.v4.parse.ActionSplitter.getActionTokens:()Ljava/util/List;
            pop
         7: .line 65
            aload 2 /* dependent */
            iconst_0
            baload
            ireturn
        end local 4 // org.antlr.v4.parse.ActionSplitter splitter
        end local 3 // org.antlr.v4.parse.ActionSplitterListener listener
        end local 2 // boolean[] dependent
        end local 1 // org.antlr.runtime.ANTLRStringStream in
        end local 0 // org.antlr.v4.tool.ast.ActionAST actionAST
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0  actionAST  Lorg/antlr/v4/tool/ast/ActionAST;
            1    8     1         in  Lorg/antlr/runtime/ANTLRStringStream;
            4    8     2  dependent  [Z
            5    8     3   listener  Lorg/antlr/v4/parse/ActionSplitterListener;
            6    8     4   splitter  Lorg/antlr/v4/parse/ActionSplitter;
    MethodParameters:
           Name  Flags
      actionAST  

  public static java.util.Map<org.antlr.v4.tool.Rule, java.util.Set<org.antlr.v4.tool.Rule>> getRuleDependencies(org.antlr.v4.tool.Grammar);
    descriptor: (Lorg/antlr/v4/tool/Grammar;)Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.antlr.v4.tool.Grammar g
         0: .line 70
            aload 0 /* g */
            aload 0 /* g */
            getfield org.antlr.v4.tool.Grammar.rules:Lorg/antlr/v4/misc/OrderedHashMap;
            invokevirtual org.antlr.v4.misc.OrderedHashMap.values:()Ljava/util/Collection;
            invokestatic org.antlr.v4.semantics.UseDefAnalyzer.getRuleDependencies:(Lorg/antlr/v4/tool/Grammar;Ljava/util/Collection;)Ljava/util/Map;
            areturn
        end local 0 // org.antlr.v4.tool.Grammar g
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     g  Lorg/antlr/v4/tool/Grammar;
    Signature: (Lorg/antlr/v4/tool/Grammar;)Ljava/util/Map<Lorg/antlr/v4/tool/Rule;Ljava/util/Set<Lorg/antlr/v4/tool/Rule;>;>;
    MethodParameters:
      Name  Flags
      g     

  public static java.util.Map<org.antlr.v4.tool.Rule, java.util.Set<org.antlr.v4.tool.Rule>> getRuleDependencies(org.antlr.v4.tool.LexerGrammar, java.lang.String);
    descriptor: (Lorg/antlr/v4/tool/LexerGrammar;Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.antlr.v4.tool.LexerGrammar g
        start local 1 // java.lang.String modeName
         0: .line 74
            aload 0 /* g */
            aload 0 /* g */
            getfield org.antlr.v4.tool.LexerGrammar.modes:Lorg/antlr/v4/runtime/misc/MultiMap;
            aload 1 /* modeName */
            invokevirtual org.antlr.v4.runtime.misc.MultiMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokestatic org.antlr.v4.semantics.UseDefAnalyzer.getRuleDependencies:(Lorg/antlr/v4/tool/Grammar;Ljava/util/Collection;)Ljava/util/Map;
            areturn
        end local 1 // java.lang.String modeName
        end local 0 // org.antlr.v4.tool.LexerGrammar g
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0         g  Lorg/antlr/v4/tool/LexerGrammar;
            0    1     1  modeName  Ljava/lang/String;
    Signature: (Lorg/antlr/v4/tool/LexerGrammar;Ljava/lang/String;)Ljava/util/Map<Lorg/antlr/v4/tool/Rule;Ljava/util/Set<Lorg/antlr/v4/tool/Rule;>;>;
    MethodParameters:
          Name  Flags
      g         
      modeName  

  public static java.util.Map<org.antlr.v4.tool.Rule, java.util.Set<org.antlr.v4.tool.Rule>> getRuleDependencies(org.antlr.v4.tool.Grammar, java.util.Collection<org.antlr.v4.tool.Rule>);
    descriptor: (Lorg/antlr/v4/tool/Grammar;Ljava/util/Collection;)Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // org.antlr.v4.tool.Grammar g
        start local 1 // java.util.Collection rules
         0: .line 78
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* dependencies */
        start local 2 // java.util.Map dependencies
         1: .line 80
            aload 1 /* rules */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: org.antlr.v4.tool.Grammar java.util.Collection java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.antlr.v4.tool.Rule
            astore 3 /* r */
        start local 3 // org.antlr.v4.tool.Rule r
         3: .line 81
            aload 3 /* r */
            getfield org.antlr.v4.tool.Rule.ast:Lorg/antlr/v4/tool/ast/RuleAST;
            bipush 66
            invokevirtual org.antlr.v4.tool.ast.RuleAST.getNodesWithType:(I)Ljava/util/List;
            astore 5 /* tokenRefs */
        start local 5 // java.util.List tokenRefs
         4: .line 82
            aload 5 /* tokenRefs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 11
      StackMap locals: org.antlr.v4.tool.Grammar java.util.Collection java.util.Map org.antlr.v4.tool.Rule java.util.Iterator java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.antlr.v4.tool.ast.GrammarAST
            astore 6 /* tref */
        start local 6 // org.antlr.v4.tool.ast.GrammarAST tref
         6: .line 83
            aload 2 /* dependencies */
            aload 3 /* r */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 8 /* calls */
        start local 8 // java.util.Set calls
         7: .line 84
            aload 8 /* calls */
            ifnonnull 10
         8: .line 85
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 8 /* calls */
         9: .line 86
            aload 2 /* dependencies */
            aload 3 /* r */
            aload 8 /* calls */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 88
      StackMap locals: org.antlr.v4.tool.Grammar java.util.Collection java.util.Map org.antlr.v4.tool.Rule java.util.Iterator java.util.List org.antlr.v4.tool.ast.GrammarAST java.util.Iterator java.util.Set
      StackMap stack:
            aload 8 /* calls */
            aload 0 /* g */
            aload 6 /* tref */
            invokevirtual org.antlr.v4.tool.ast.GrammarAST.getText:()Ljava/lang/String;
            invokevirtual org.antlr.v4.tool.Grammar.getRule:(Ljava/lang/String;)Lorg/antlr/v4/tool/Rule;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.util.Set calls
        end local 6 // org.antlr.v4.tool.ast.GrammarAST tref
        11: .line 82
      StackMap locals: org.antlr.v4.tool.Grammar java.util.Collection java.util.Map org.antlr.v4.tool.Rule java.util.Iterator java.util.List top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 5 // java.util.List tokenRefs
        end local 3 // org.antlr.v4.tool.Rule r
        12: .line 80
      StackMap locals: org.antlr.v4.tool.Grammar java.util.Collection java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        13: .line 92
            aload 2 /* dependencies */
            areturn
        end local 2 // java.util.Map dependencies
        end local 1 // java.util.Collection rules
        end local 0 // org.antlr.v4.tool.Grammar g
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0             g  Lorg/antlr/v4/tool/Grammar;
            0   14     1         rules  Ljava/util/Collection<Lorg/antlr/v4/tool/Rule;>;
            1   14     2  dependencies  Ljava/util/Map<Lorg/antlr/v4/tool/Rule;Ljava/util/Set<Lorg/antlr/v4/tool/Rule;>;>;
            3   12     3             r  Lorg/antlr/v4/tool/Rule;
            4   12     5     tokenRefs  Ljava/util/List<Lorg/antlr/v4/tool/ast/GrammarAST;>;
            6   11     6          tref  Lorg/antlr/v4/tool/ast/GrammarAST;
            7   11     8         calls  Ljava/util/Set<Lorg/antlr/v4/tool/Rule;>;
    Signature: (Lorg/antlr/v4/tool/Grammar;Ljava/util/Collection<Lorg/antlr/v4/tool/Rule;>;)Ljava/util/Map<Lorg/antlr/v4/tool/Rule;Ljava/util/Set<Lorg/antlr/v4/tool/Rule;>;>;
    MethodParameters:
       Name  Flags
      g      
      rules  
}
SourceFile: "UseDefAnalyzer.java"
NestMembers:
  org.antlr.v4.semantics.UseDefAnalyzer$1
InnerClasses:
  org.antlr.v4.semantics.UseDefAnalyzer$1