class org.antlr.v4.Tool$1UndefChecker extends org.antlr.v4.parse.GrammarTreeVisitor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.antlr.v4.Tool$1UndefChecker
super_class: org.antlr.v4.parse.GrammarTreeVisitor
{
public boolean badref;
descriptor: Z
flags: (0x0001) ACC_PUBLIC
final org.antlr.v4.Tool this$0;
descriptor: Lorg/antlr/v4/Tool;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final org.antlr.v4.tool.Grammar val$g;
descriptor: Lorg/antlr/v4/tool/Grammar;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.util.Map val$ruleToAST;
descriptor: Ljava/util/Map;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(org.antlr.v4.Tool, org.antlr.v4.tool.Grammar, java.util.Map);
descriptor: (Lorg/antlr/v4/Tool;Lorg/antlr/v4/tool/Grammar;Ljava/util/Map;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 0: aload 0
aload 1
putfield org.antlr.v4.Tool$1UndefChecker.this$0:Lorg/antlr/v4/Tool;
aload 0
aload 2
putfield org.antlr.v4.Tool$1UndefChecker.val$g:Lorg/antlr/v4/tool/Grammar;
aload 0
aload 3
putfield org.antlr.v4.Tool$1UndefChecker.val$ruleToAST:Ljava/util/Map;
aload 0
invokespecial org.antlr.v4.parse.GrammarTreeVisitor.<init>:()V
1: aload 0
iconst_0
putfield org.antlr.v4.Tool$1UndefChecker.badref:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/antlr/v4/Tool$1UndefChecker;
MethodParameters:
Name Flags
this$0 final
val$g final
val$ruleToAST final
public void tokenRef(org.antlr.v4.tool.ast.TerminalAST);
descriptor: (Lorg/antlr/v4/tool/ast/TerminalAST;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: ldc "EOF"
aload 1
invokevirtual org.antlr.v4.tool.ast.TerminalAST.getText:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.antlr.v4.Tool$1UndefChecker.val$g:Lorg/antlr/v4/tool/Grammar;
invokevirtual org.antlr.v4.tool.Grammar.isLexer:()Z
ifeq 3
aload 0
aload 1
aconst_null
invokevirtual org.antlr.v4.Tool$1UndefChecker.ruleRef:(Lorg/antlr/v4/tool/ast/GrammarAST;Lorg/antlr/v4/tool/ast/ActionAST;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/antlr/v4/Tool$1UndefChecker;
0 4 1 ref Lorg/antlr/v4/tool/ast/TerminalAST;
MethodParameters:
Name Flags
ref
public void ruleRef(org.antlr.v4.tool.ast.GrammarAST, org.antlr.v4.tool.ast.ActionAST);
descriptor: (Lorg/antlr/v4/tool/ast/GrammarAST;Lorg/antlr/v4/tool/ast/ActionAST;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.antlr.v4.Tool$1UndefChecker.val$ruleToAST:Ljava/util/Map;
aload 1
invokevirtual org.antlr.v4.tool.ast.GrammarAST.getText:()Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.antlr.v4.tool.ast.RuleAST
astore 3
start local 3 1: aload 1
invokevirtual org.antlr.v4.tool.ast.GrammarAST.getToken:()Lorg/antlr/runtime/Token;
invokeinterface org.antlr.runtime.Token.getInputStream:()Lorg/antlr/runtime/CharStream;
invokeinterface org.antlr.runtime.CharStream.getSourceName:()Ljava/lang/String;
astore 4
start local 4 2: aload 0
getfield org.antlr.v4.Tool$1UndefChecker.currentRuleName:Ljava/lang/String;
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.isUpperCase:(C)Z
ifeq 9
3: aload 1
invokevirtual org.antlr.v4.tool.ast.GrammarAST.getText:()Ljava/lang/String;
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.isLowerCase:(C)Z
ifeq 9
4: aload 0
iconst_1
putfield org.antlr.v4.Tool$1UndefChecker.badref:Z
5: aload 0
getfield org.antlr.v4.Tool$1UndefChecker.this$0:Lorg/antlr/v4/Tool;
getfield org.antlr.v4.Tool.errMgr:Lorg/antlr/v4/tool/ErrorManager;
getstatic org.antlr.v4.tool.ErrorType.PARSER_RULE_REF_IN_LEXER_RULE:Lorg/antlr/v4/tool/ErrorType;
6: aload 4
aload 1
invokevirtual org.antlr.v4.tool.ast.GrammarAST.getToken:()Lorg/antlr/runtime/Token;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual org.antlr.v4.tool.ast.GrammarAST.getText:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield org.antlr.v4.Tool$1UndefChecker.currentRuleName:Ljava/lang/String;
aastore
7: invokevirtual org.antlr.v4.tool.ErrorManager.grammarError:(Lorg/antlr/v4/tool/ErrorType;Ljava/lang/String;Lorg/antlr/runtime/Token;[Ljava/lang/Object;)V
8: goto 14
9: StackMap locals: org.antlr.v4.tool.ast.RuleAST java.lang.String
StackMap stack:
aload 3
ifnonnull 14
10: aload 0
iconst_1
putfield org.antlr.v4.Tool$1UndefChecker.badref:Z
11: aload 0
getfield org.antlr.v4.Tool$1UndefChecker.this$0:Lorg/antlr/v4/Tool;
getfield org.antlr.v4.Tool.errMgr:Lorg/antlr/v4/tool/ErrorManager;
getstatic org.antlr.v4.tool.ErrorType.UNDEFINED_RULE_REF:Lorg/antlr/v4/tool/ErrorType;
12: aload 4
aload 1
getfield org.antlr.v4.tool.ast.GrammarAST.token:Lorg/antlr/runtime/Token;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual org.antlr.v4.tool.ast.GrammarAST.getText:()Ljava/lang/String;
aastore
13: invokevirtual org.antlr.v4.tool.ErrorManager.grammarError:(Lorg/antlr/v4/tool/ErrorType;Ljava/lang/String;Lorg/antlr/runtime/Token;[Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/antlr/v4/Tool$1UndefChecker;
0 15 1 ref Lorg/antlr/v4/tool/ast/GrammarAST;
0 15 2 arg Lorg/antlr/v4/tool/ast/ActionAST;
1 15 3 ruleAST Lorg/antlr/v4/tool/ast/RuleAST;
2 15 4 fileName Ljava/lang/String;
MethodParameters:
Name Flags
ref
arg
public org.antlr.v4.tool.ErrorManager getErrorManager();
descriptor: ()Lorg/antlr/v4/tool/ErrorManager;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.antlr.v4.Tool$1UndefChecker.this$0:Lorg/antlr/v4/Tool;
getfield org.antlr.v4.Tool.errMgr:Lorg/antlr/v4/tool/ErrorManager;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/antlr/v4/Tool$1UndefChecker;
}
SourceFile: "Tool.java"
EnclosingMethod: org.antlr.v4.Tool.checkForRuleIssues:(Lorg/antlr/v4/tool/Grammar;)Z
NestHost: org.antlr.v4.Tool
InnerClasses:
UndefChecker = org.antlr.v4.Tool$1UndefChecker