package org.jf.smali;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.antlr.runtime.BitSet;
import org.antlr.runtime.*;
import org.antlr.runtime.tree.CommonTree;
import org.antlr.runtime.tree.TreeNodeStream;
import org.antlr.runtime.tree.TreeParser;
import org.antlr.runtime.tree.TreeRuleReturnScope;
import org.jf.dexlib2.*;
import org.jf.dexlib2.builder.Label;
import org.jf.dexlib2.builder.MethodImplementationBuilder;
import org.jf.dexlib2.builder.SwitchLabelElement;
import org.jf.dexlib2.builder.instruction.*;
import org.jf.dexlib2.iface.Annotation;
import org.jf.dexlib2.iface.AnnotationElement;
import org.jf.dexlib2.iface.ClassDef;
import org.jf.dexlib2.iface.MethodImplementation;
import org.jf.dexlib2.iface.reference.FieldReference;
import org.jf.dexlib2.iface.reference.MethodReference;
import org.jf.dexlib2.iface.value.EncodedValue;
import org.jf.dexlib2.immutable.ImmutableAnnotation;
import org.jf.dexlib2.immutable.ImmutableAnnotationElement;
import org.jf.dexlib2.immutable.reference.ImmutableCallSiteReference;
import org.jf.dexlib2.immutable.reference.ImmutableFieldReference;
import org.jf.dexlib2.immutable.reference.ImmutableMethodHandleReference;
import org.jf.dexlib2.immutable.reference.ImmutableMethodReference;
import org.jf.dexlib2.immutable.reference.ImmutableMethodProtoReference;
import org.jf.dexlib2.immutable.reference.ImmutableReference;
import org.jf.dexlib2.immutable.reference.ImmutableTypeReference;
import org.jf.dexlib2.immutable.value.*;
import org.jf.dexlib2.util.MethodUtil;
import org.jf.dexlib2.writer.InstructionFactory;
import org.jf.dexlib2.writer.builder.*;
import org.jf.util.LinearSearch;
import java.util.*;
import org.antlr.runtime.*;
import org.antlr.runtime.tree.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
@SuppressWarnings("all")
public class smaliTreeWalker extends TreeParser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACCESS_SPEC", "ANNOTATION_DIRECTIVE",
"ANNOTATION_VISIBILITY", "ARRAY_DATA_DIRECTIVE", "ARRAY_TYPE_PREFIX",
"ARROW", "AT", "BOOL_LITERAL", "BYTE_LITERAL", "CATCHALL_DIRECTIVE", "CATCH_DIRECTIVE",
"CHAR_LITERAL", "CLASS_DESCRIPTOR", "CLASS_DIRECTIVE", "CLOSE_BRACE",
"CLOSE_PAREN", "COLON", "COMMA", "DOTDOT", "DOUBLE_LITERAL", "DOUBLE_LITERAL_OR_ID",
"END_ANNOTATION_DIRECTIVE", "END_ARRAY_DATA_DIRECTIVE", "END_FIELD_DIRECTIVE",
"END_LOCAL_DIRECTIVE", "END_METHOD_DIRECTIVE", "END_PACKED_SWITCH_DIRECTIVE",
"END_PARAMETER_DIRECTIVE", "END_SPARSE_SWITCH_DIRECTIVE", "END_SUBANNOTATION_DIRECTIVE",
"ENUM_DIRECTIVE", "EPILOGUE_DIRECTIVE", "EQUAL", "FIELD_DIRECTIVE", "FIELD_OFFSET",
"FLOAT_LITERAL", "FLOAT_LITERAL_OR_ID", "HIDDENAPI_RESTRICTION", "IMPLEMENTS_DIRECTIVE",
"INLINE_INDEX", "INSTRUCTION_FORMAT10t", "INSTRUCTION_FORMAT10x", "INSTRUCTION_FORMAT10x_ODEX",
"INSTRUCTION_FORMAT11n", "INSTRUCTION_FORMAT11x", "INSTRUCTION_FORMAT12x",
"INSTRUCTION_FORMAT12x_OR_ID", "INSTRUCTION_FORMAT20bc", "INSTRUCTION_FORMAT20t",
"INSTRUCTION_FORMAT21c_FIELD", "INSTRUCTION_FORMAT21c_FIELD_ODEX", "INSTRUCTION_FORMAT21c_METHOD_HANDLE",
"INSTRUCTION_FORMAT21c_METHOD_TYPE", "INSTRUCTION_FORMAT21c_STRING", "INSTRUCTION_FORMAT21c_TYPE",
"INSTRUCTION_FORMAT21ih", "INSTRUCTION_FORMAT21lh", "INSTRUCTION_FORMAT21s",
"INSTRUCTION_FORMAT21t", "INSTRUCTION_FORMAT22b", "INSTRUCTION_FORMAT22c_FIELD",
"INSTRUCTION_FORMAT22c_FIELD_ODEX", "INSTRUCTION_FORMAT22c_TYPE", "INSTRUCTION_FORMAT22cs_FIELD",
"INSTRUCTION_FORMAT22s", "INSTRUCTION_FORMAT22s_OR_ID", "INSTRUCTION_FORMAT22t",
"INSTRUCTION_FORMAT22x", "INSTRUCTION_FORMAT23x", "INSTRUCTION_FORMAT30t",
"INSTRUCTION_FORMAT31c", "INSTRUCTION_FORMAT31i", "INSTRUCTION_FORMAT31i_OR_ID",
"INSTRUCTION_FORMAT31t", "INSTRUCTION_FORMAT32x", "INSTRUCTION_FORMAT35c_CALL_SITE",
"INSTRUCTION_FORMAT35c_METHOD", "INSTRUCTION_FORMAT35c_METHOD_ODEX", "INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE",
"INSTRUCTION_FORMAT35c_TYPE", "INSTRUCTION_FORMAT35mi_METHOD", "INSTRUCTION_FORMAT35ms_METHOD",
"INSTRUCTION_FORMAT3rc_CALL_SITE", "INSTRUCTION_FORMAT3rc_METHOD", "INSTRUCTION_FORMAT3rc_METHOD_ODEX",
"INSTRUCTION_FORMAT3rc_TYPE", "INSTRUCTION_FORMAT3rmi_METHOD", "INSTRUCTION_FORMAT3rms_METHOD",
"INSTRUCTION_FORMAT45cc_METHOD", "INSTRUCTION_FORMAT4rcc_METHOD", "INSTRUCTION_FORMAT51l",
"INTEGER_LITERAL", "INVALID_TOKEN", "I_ACCESS_LIST", "I_ACCESS_OR_RESTRICTION_LIST",
"I_ANNOTATION", "I_ANNOTATIONS", "I_ANNOTATION_ELEMENT", "I_ARRAY_ELEMENTS",
"I_ARRAY_ELEMENT_SIZE", "I_CALL_SITE_EXTRA_ARGUMENTS", "I_CALL_SITE_REFERENCE",
"I_CATCH", "I_CATCHALL", "I_CATCHES", "I_CLASS_DEF", "I_ENCODED_ARRAY",
"I_ENCODED_ENUM", "I_ENCODED_FIELD", "I_ENCODED_METHOD", "I_ENCODED_METHOD_HANDLE",
"I_END_LOCAL", "I_EPILOGUE", "I_FIELD", "I_FIELDS", "I_FIELD_INITIAL_VALUE",
"I_FIELD_TYPE", "I_IMPLEMENTS", "I_LABEL", "I_LINE", "I_LOCAL", "I_LOCALS",
"I_METHOD", "I_METHODS", "I_METHOD_PROTOTYPE", "I_METHOD_RETURN_TYPE",
"I_ORDERED_METHOD_ITEMS", "I_PACKED_SWITCH_ELEMENTS", "I_PACKED_SWITCH_START_KEY",
"I_PARAMETER", "I_PARAMETERS", "I_PARAMETER_NOT_SPECIFIED", "I_PROLOGUE",
"I_REGISTERS", "I_REGISTER_LIST", "I_REGISTER_RANGE", "I_RESTART_LOCAL",
"I_SOURCE", "I_SPARSE_SWITCH_ELEMENTS", "I_STATEMENT_ARRAY_DATA", "I_STATEMENT_FORMAT10t",
"I_STATEMENT_FORMAT10x", "I_STATEMENT_FORMAT11n", "I_STATEMENT_FORMAT11x",
"I_STATEMENT_FORMAT12x", "I_STATEMENT_FORMAT20bc", "I_STATEMENT_FORMAT20t",
"I_STATEMENT_FORMAT21c_FIELD", "I_STATEMENT_FORMAT21c_METHOD_HANDLE",
"I_STATEMENT_FORMAT21c_METHOD_TYPE", "I_STATEMENT_FORMAT21c_STRING", "I_STATEMENT_FORMAT21c_TYPE",
"I_STATEMENT_FORMAT21ih", "I_STATEMENT_FORMAT21lh", "I_STATEMENT_FORMAT21s",
"I_STATEMENT_FORMAT21t", "I_STATEMENT_FORMAT22b", "I_STATEMENT_FORMAT22c_FIELD",
"I_STATEMENT_FORMAT22c_TYPE", "I_STATEMENT_FORMAT22s", "I_STATEMENT_FORMAT22t",
"I_STATEMENT_FORMAT22x", "I_STATEMENT_FORMAT23x", "I_STATEMENT_FORMAT30t",
"I_STATEMENT_FORMAT31c", "I_STATEMENT_FORMAT31i", "I_STATEMENT_FORMAT31t",
"I_STATEMENT_FORMAT32x", "I_STATEMENT_FORMAT35c_CALL_SITE", "I_STATEMENT_FORMAT35c_METHOD",
"I_STATEMENT_FORMAT35c_TYPE", "I_STATEMENT_FORMAT3rc_CALL_SITE", "I_STATEMENT_FORMAT3rc_METHOD",
"I_STATEMENT_FORMAT3rc_TYPE", "I_STATEMENT_FORMAT45cc_METHOD", "I_STATEMENT_FORMAT4rcc_METHOD",
"I_STATEMENT_FORMAT51l", "I_STATEMENT_PACKED_SWITCH", "I_STATEMENT_SPARSE_SWITCH",
"I_SUBANNOTATION", "I_SUPER", "LINE_COMMENT", "LINE_DIRECTIVE", "LOCALS_DIRECTIVE",
"LOCAL_DIRECTIVE", "LONG_LITERAL", "MEMBER_NAME", "METHOD_DIRECTIVE",
"METHOD_HANDLE_TYPE_FIELD", "METHOD_HANDLE_TYPE_METHOD", "NEGATIVE_INTEGER_LITERAL",
"NULL_LITERAL", "OPEN_BRACE", "OPEN_PAREN", "PACKED_SWITCH_DIRECTIVE",
"PARAMETER_DIRECTIVE", "PARAM_LIST_OR_ID_PRIMITIVE_TYPE", "POSITIVE_INTEGER_LITERAL",
"PRIMITIVE_TYPE", "PROLOGUE_DIRECTIVE", "REGISTER", "REGISTERS_DIRECTIVE",
"RESTART_LOCAL_DIRECTIVE", "SHORT_LITERAL", "SIMPLE_NAME", "SOURCE_DIRECTIVE",
"SPARSE_SWITCH_DIRECTIVE", "STRING_LITERAL", "SUBANNOTATION_DIRECTIVE",
"SUPER_DIRECTIVE", "VERIFICATION_ERROR_TYPE", "VOID_TYPE", "VTABLE_INDEX",
"WHITE_SPACE"
};
public static final int EOF=-1;
public static final int ACCESS_SPEC=4;
public static final int ANNOTATION_DIRECTIVE=5;
public static final int ANNOTATION_VISIBILITY=6;
public static final int ARRAY_DATA_DIRECTIVE=7;
public static final int ARRAY_TYPE_PREFIX=8;
public static final int ARROW=9;
public static final int AT=10;
public static final int BOOL_LITERAL=11;
public static final int BYTE_LITERAL=12;
public static final int CATCHALL_DIRECTIVE=13;
public static final int CATCH_DIRECTIVE=14;
public static final int CHAR_LITERAL=15;
public static final int CLASS_DESCRIPTOR=16;
public static final int CLASS_DIRECTIVE=17;
public static final int CLOSE_BRACE=18;
public static final int CLOSE_PAREN=19;
public static final int COLON=20;
public static final int COMMA=21;
public static final int DOTDOT=22;
public static final int DOUBLE_LITERAL=23;
public static final int DOUBLE_LITERAL_OR_ID=24;
public static final int END_ANNOTATION_DIRECTIVE=25;
public static final int END_ARRAY_DATA_DIRECTIVE=26;
public static final int END_FIELD_DIRECTIVE=27;
public static final int END_LOCAL_DIRECTIVE=28;
public static final int END_METHOD_DIRECTIVE=29;
public static final int END_PACKED_SWITCH_DIRECTIVE=30;
public static final int END_PARAMETER_DIRECTIVE=31;
public static final int END_SPARSE_SWITCH_DIRECTIVE=32;
public static final int END_SUBANNOTATION_DIRECTIVE=33;
public static final int ENUM_DIRECTIVE=34;
public static final int EPILOGUE_DIRECTIVE=35;
public static final int EQUAL=36;
public static final int FIELD_DIRECTIVE=37;
public static final int FIELD_OFFSET=38;
public static final int FLOAT_LITERAL=39;
public static final int FLOAT_LITERAL_OR_ID=40;
public static final int HIDDENAPI_RESTRICTION=41;
public static final int IMPLEMENTS_DIRECTIVE=42;
public static final int INLINE_INDEX=43;
public static final int INSTRUCTION_FORMAT10t=44;
public static final int INSTRUCTION_FORMAT10x=45;
public static final int INSTRUCTION_FORMAT10x_ODEX=46;
public static final int INSTRUCTION_FORMAT11n=47;
public static final int INSTRUCTION_FORMAT11x=48;
public static final int INSTRUCTION_FORMAT12x=49;
public static final int INSTRUCTION_FORMAT12x_OR_ID=50;
public static final int INSTRUCTION_FORMAT20bc=51;
public static final int INSTRUCTION_FORMAT20t=52;
public static final int INSTRUCTION_FORMAT21c_FIELD=53;
public static final int INSTRUCTION_FORMAT21c_FIELD_ODEX=54;
public static final int INSTRUCTION_FORMAT21c_METHOD_HANDLE=55;
public static final int INSTRUCTION_FORMAT21c_METHOD_TYPE=56;
public static final int INSTRUCTION_FORMAT21c_STRING=57;
public static final int INSTRUCTION_FORMAT21c_TYPE=58;
public static final int INSTRUCTION_FORMAT21ih=59;
public static final int INSTRUCTION_FORMAT21lh=60;
public static final int INSTRUCTION_FORMAT21s=61;
public static final int INSTRUCTION_FORMAT21t=62;
public static final int INSTRUCTION_FORMAT22b=63;
public static final int INSTRUCTION_FORMAT22c_FIELD=64;
public static final int INSTRUCTION_FORMAT22c_FIELD_ODEX=65;
public static final int INSTRUCTION_FORMAT22c_TYPE=66;
public static final int INSTRUCTION_FORMAT22cs_FIELD=67;
public static final int INSTRUCTION_FORMAT22s=68;
public static final int INSTRUCTION_FORMAT22s_OR_ID=69;
public static final int INSTRUCTION_FORMAT22t=70;
public static final int INSTRUCTION_FORMAT22x=71;
public static final int INSTRUCTION_FORMAT23x=72;
public static final int INSTRUCTION_FORMAT30t=73;
public static final int INSTRUCTION_FORMAT31c=74;
public static final int INSTRUCTION_FORMAT31i=75;
public static final int INSTRUCTION_FORMAT31i_OR_ID=76;
public static final int INSTRUCTION_FORMAT31t=77;
public static final int INSTRUCTION_FORMAT32x=78;
public static final int INSTRUCTION_FORMAT35c_CALL_SITE=79;
public static final int INSTRUCTION_FORMAT35c_METHOD=80;
public static final int INSTRUCTION_FORMAT35c_METHOD_ODEX=81;
public static final int INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE=82;
public static final int INSTRUCTION_FORMAT35c_TYPE=83;
public static final int INSTRUCTION_FORMAT35mi_METHOD=84;
public static final int INSTRUCTION_FORMAT35ms_METHOD=85;
public static final int INSTRUCTION_FORMAT3rc_CALL_SITE=86;
public static final int INSTRUCTION_FORMAT3rc_METHOD=87;
public static final int INSTRUCTION_FORMAT3rc_METHOD_ODEX=88;
public static final int INSTRUCTION_FORMAT3rc_TYPE=89;
public static final int INSTRUCTION_FORMAT3rmi_METHOD=90;
public static final int INSTRUCTION_FORMAT3rms_METHOD=91;
public static final int INSTRUCTION_FORMAT45cc_METHOD=92;
public static final int INSTRUCTION_FORMAT4rcc_METHOD=93;
public static final int INSTRUCTION_FORMAT51l=94;
public static final int INTEGER_LITERAL=95;
public static final int INVALID_TOKEN=96;
public static final int I_ACCESS_LIST=97;
public static final int I_ACCESS_OR_RESTRICTION_LIST=98;
public static final int I_ANNOTATION=99;
public static final int I_ANNOTATIONS=100;
public static final int I_ANNOTATION_ELEMENT=101;
public static final int I_ARRAY_ELEMENTS=102;
public static final int I_ARRAY_ELEMENT_SIZE=103;
public static final int =104;
public static final int I_CALL_SITE_REFERENCE=105;
public static final int I_CATCH=106;
public static final int I_CATCHALL=107;
public static final int I_CATCHES=108;
public static final int I_CLASS_DEF=109;
public static final int I_ENCODED_ARRAY=110;
public static final int I_ENCODED_ENUM=111;
public static final int I_ENCODED_FIELD=112;
public static final int I_ENCODED_METHOD=113;
public static final int I_ENCODED_METHOD_HANDLE=114;
public static final int I_END_LOCAL=115;
public static final int I_EPILOGUE=116;
public static final int I_FIELD=117;
public static final int I_FIELDS=118;
public static final int I_FIELD_INITIAL_VALUE=119;
public static final int I_FIELD_TYPE=120;
public static final int I_IMPLEMENTS=121;
public static final int I_LABEL=122;
public static final int I_LINE=123;
public static final int I_LOCAL=124;
public static final int I_LOCALS=125;
public static final int I_METHOD=126;
public static final int I_METHODS=127;
public static final int I_METHOD_PROTOTYPE=128;
public static final int I_METHOD_RETURN_TYPE=129;
public static final int I_ORDERED_METHOD_ITEMS=130;
public static final int I_PACKED_SWITCH_ELEMENTS=131;
public static final int I_PACKED_SWITCH_START_KEY=132;
public static final int I_PARAMETER=133;
public static final int I_PARAMETERS=134;
public static final int I_PARAMETER_NOT_SPECIFIED=135;
public static final int I_PROLOGUE=136;
public static final int I_REGISTERS=137;
public static final int I_REGISTER_LIST=138;
public static final int I_REGISTER_RANGE=139;
public static final int I_RESTART_LOCAL=140;
public static final int I_SOURCE=141;
public static final int I_SPARSE_SWITCH_ELEMENTS=142;
public static final int I_STATEMENT_ARRAY_DATA=143;
public static final int I_STATEMENT_FORMAT10t=144;
public static final int I_STATEMENT_FORMAT10x=145;
public static final int I_STATEMENT_FORMAT11n=146;
public static final int I_STATEMENT_FORMAT11x=147;
public static final int I_STATEMENT_FORMAT12x=148;
public static final int I_STATEMENT_FORMAT20bc=149;
public static final int I_STATEMENT_FORMAT20t=150;
public static final int I_STATEMENT_FORMAT21c_FIELD=151;
public static final int I_STATEMENT_FORMAT21c_METHOD_HANDLE=152;
public static final int I_STATEMENT_FORMAT21c_METHOD_TYPE=153;
public static final int I_STATEMENT_FORMAT21c_STRING=154;
public static final int I_STATEMENT_FORMAT21c_TYPE=155;
public static final int I_STATEMENT_FORMAT21ih=156;
public static final int I_STATEMENT_FORMAT21lh=157;
public static final int I_STATEMENT_FORMAT21s=158;
public static final int I_STATEMENT_FORMAT21t=159;
public static final int I_STATEMENT_FORMAT22b=160;
public static final int I_STATEMENT_FORMAT22c_FIELD=161;
public static final int I_STATEMENT_FORMAT22c_TYPE=162;
public static final int I_STATEMENT_FORMAT22s=163;
public static final int I_STATEMENT_FORMAT22t=164;
public static final int I_STATEMENT_FORMAT22x=165;
public static final int I_STATEMENT_FORMAT23x=166;
public static final int I_STATEMENT_FORMAT30t=167;
public static final int I_STATEMENT_FORMAT31c=168;
public static final int I_STATEMENT_FORMAT31i=169;
public static final int I_STATEMENT_FORMAT31t=170;
public static final int I_STATEMENT_FORMAT32x=171;
public static final int I_STATEMENT_FORMAT35c_CALL_SITE=172;
public static final int I_STATEMENT_FORMAT35c_METHOD=173;
public static final int I_STATEMENT_FORMAT35c_TYPE=174;
public static final int I_STATEMENT_FORMAT3rc_CALL_SITE=175;
public static final int I_STATEMENT_FORMAT3rc_METHOD=176;
public static final int I_STATEMENT_FORMAT3rc_TYPE=177;
public static final int I_STATEMENT_FORMAT45cc_METHOD=178;
public static final int I_STATEMENT_FORMAT4rcc_METHOD=179;
public static final int I_STATEMENT_FORMAT51l=180;
public static final int I_STATEMENT_PACKED_SWITCH=181;
public static final int I_STATEMENT_SPARSE_SWITCH=182;
public static final int I_SUBANNOTATION=183;
public static final int I_SUPER=184;
public static final int =185;
public static final int LINE_DIRECTIVE=186;
public static final int LOCALS_DIRECTIVE=187;
public static final int LOCAL_DIRECTIVE=188;
public static final int LONG_LITERAL=189;
public static final int MEMBER_NAME=190;
public static final int METHOD_DIRECTIVE=191;
public static final int METHOD_HANDLE_TYPE_FIELD=192;
public static final int METHOD_HANDLE_TYPE_METHOD=193;
public static final int NEGATIVE_INTEGER_LITERAL=194;
public static final int NULL_LITERAL=195;
public static final int OPEN_BRACE=196;
public static final int OPEN_PAREN=197;
public static final int PACKED_SWITCH_DIRECTIVE=198;
public static final int PARAMETER_DIRECTIVE=199;
public static final int PARAM_LIST_OR_ID_PRIMITIVE_TYPE=200;
public static final int POSITIVE_INTEGER_LITERAL=201;
public static final int PRIMITIVE_TYPE=202;
public static final int PROLOGUE_DIRECTIVE=203;
public static final int REGISTER=204;
public static final int REGISTERS_DIRECTIVE=205;
public static final int RESTART_LOCAL_DIRECTIVE=206;
public static final int SHORT_LITERAL=207;
public static final int SIMPLE_NAME=208;
public static final int SOURCE_DIRECTIVE=209;
public static final int SPARSE_SWITCH_DIRECTIVE=210;
public static final int STRING_LITERAL=211;
public static final int SUBANNOTATION_DIRECTIVE=212;
public static final int SUPER_DIRECTIVE=213;
public static final int VERIFICATION_ERROR_TYPE=214;
public static final int VOID_TYPE=215;
public static final int VTABLE_INDEX=216;
public static final int WHITE_SPACE=217;
public TreeParser[] getDelegates() {
return new TreeParser[] {};
}
public smaliTreeWalker(TreeNodeStream input) {
this(input, new RecognizerSharedState());
}
public smaliTreeWalker(TreeNodeStream input, RecognizerSharedState state) {
super(input, state);
}
@Override public String[] getTokenNames() { return smaliTreeWalker.tokenNames; }
@Override public String getGrammarFileName() { return "smaliTreeWalker.g"; }
public String classType;
private boolean verboseErrors = false;
private int apiLevel = 15;
private Opcodes opcodes = Opcodes.forApi(apiLevel);
private DexBuilder dexBuilder;
private int callSiteNameIndex = 0;
public void setDexBuilder(DexBuilder dexBuilder) {
this.dexBuilder = dexBuilder;
}
public void setApiLevel(int apiLevel) {
this.opcodes = Opcodes.forApi(apiLevel);
this.apiLevel = apiLevel;
}
public void setVerboseErrors(boolean verboseErrors) {
this.verboseErrors = verboseErrors;
}
private byte parseRegister_nibble(String register)
throws SemanticException {
int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
int val = Byte.parseByte(register.substring(1));
if (register.charAt(0) == 'p') {
val = totalMethodRegisters - methodParameterRegisters + val;
}
if (val >= 2<<4) {
throw new SemanticException(input, "The maximum allowed register in this context is list of registers is v15");
}
return (byte)val;
}
private short parseRegister_byte(String register)
throws SemanticException {
int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
int val = Short.parseShort(register.substring(1));
if (register.charAt(0) == 'p') {
val = totalMethodRegisters - methodParameterRegisters + val;
}
if (val >= 2<<8) {
throw new SemanticException(input, "The maximum allowed register in this context is v255");
}
return (short)val;
}
private int parseRegister_short(String register)
throws SemanticException {
int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
int val = Integer.parseInt(register.substring(1));
if (register.charAt(0) == 'p') {
val = totalMethodRegisters - methodParameterRegisters + val;
}
if (val >= 2<<16) {
throw new SemanticException(input, "The maximum allowed register in this context is v65535");
}
return val;
}
public String getErrorMessage(RecognitionException e, String[] tokenNames) {
if ( e instanceof SemanticException ) {
return e.getMessage();
} else {
return super.getErrorMessage(e, tokenNames);
}
}
public String (RecognitionException e) {
return getSourceName()+"["+ e.line+","+e.charPositionInLine+"]";
}
public final ClassDef smali_file() throws RecognitionException {
ClassDef classDef = null;
TreeRuleReturnScope header1 =null;
Set<Annotation> annotations2 =null;
List<BuilderField> fields3 =null;
List<BuilderMethod> methods4 =null;
try {
{
match(input,I_CLASS_DEF,FOLLOW_I_CLASS_DEF_in_smali_file52);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_header_in_smali_file54);
header1=header();
state._fsp--;
pushFollow(FOLLOW_methods_in_smali_file56);
methods4=methods();
state._fsp--;
pushFollow(FOLLOW_fields_in_smali_file58);
fields3=fields();
state._fsp--;
pushFollow(FOLLOW_annotations_in_smali_file60);
annotations2=annotations();
state._fsp--;
match(input, Token.UP, null);
classDef = dexBuilder.internClassDef((header1!=null?((smaliTreeWalker.header_return)header1).classType:null), (header1!=null?((smaliTreeWalker.header_return)header1).accessFlags:0), (header1!=null?((smaliTreeWalker.header_return)header1).superType:null),
(header1!=null?((smaliTreeWalker.header_return)header1).implementsList:null), (header1!=null?((smaliTreeWalker.header_return)header1).sourceSpec:null), annotations2, fields3, methods4);
}
}
catch (Exception ex) {
if (verboseErrors) {
ex.printStackTrace(System.err);
}
reportError(new SemanticException(input, ex));
}
finally {
}
return classDef;
}
public static class extends TreeRuleReturnScope {
public String ;
public int ;
public String ;
public List<String> ;
public String ;
};
public final smaliTreeWalker.header_return () throws RecognitionException {
smaliTreeWalker.header_return retval = new smaliTreeWalker.header_return();
retval.start = input.LT(1);
TreeRuleReturnScope class_spec5 =null;
String super_spec6 =null;
List<String> implements_list7 =null;
String source_spec8 =null;
try {
{
pushFollow(FOLLOW_class_spec_in_header85);
class_spec5=class_spec();
state._fsp--;
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==I_SUPER) ) {
alt1=1;
}
switch (alt1) {
case 1 :
{
pushFollow(FOLLOW_super_spec_in_header87);
super_spec6=super_spec();
state._fsp--;
}
break;
}
pushFollow(FOLLOW_implements_list_in_header90);
implements_list7=implements_list();
state._fsp--;
pushFollow(FOLLOW_source_spec_in_header92);
source_spec8=source_spec();
state._fsp--;
classType = (class_spec5!=null?((smaliTreeWalker.class_spec_return)class_spec5).type:null);
retval.classType = classType;
retval.accessFlags = (class_spec5!=null?((smaliTreeWalker.class_spec_return)class_spec5).accessFlags:0);
retval.superType = super_spec6;
retval.implementsList = implements_list7;
retval.sourceSpec = source_spec8;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public static class class_spec_return extends TreeRuleReturnScope {
public String type;
public int accessFlags;
};
public final smaliTreeWalker.class_spec_return class_spec() throws RecognitionException {
smaliTreeWalker.class_spec_return retval = new smaliTreeWalker.class_spec_return();
retval.start = input.LT(1);
CommonTree CLASS_DESCRIPTOR9=null;
int access_list10 =0;
try {
{
CLASS_DESCRIPTOR9=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_class_spec110);
pushFollow(FOLLOW_access_list_in_class_spec112);
access_list10=access_list();
state._fsp--;
retval.type = (CLASS_DESCRIPTOR9!=null?CLASS_DESCRIPTOR9.getText():null);
retval.accessFlags = access_list10;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public final String super_spec() throws RecognitionException {
String type = null;
CommonTree CLASS_DESCRIPTOR11=null;
try {
{
match(input,I_SUPER,FOLLOW_I_SUPER_in_super_spec130);
match(input, Token.DOWN, null);
CLASS_DESCRIPTOR11=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_super_spec132);
match(input, Token.UP, null);
type = (CLASS_DESCRIPTOR11!=null?CLASS_DESCRIPTOR11.getText():null);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return type;
}
public final String implements_spec() throws RecognitionException {
String type = null;
CommonTree CLASS_DESCRIPTOR12=null;
try {
{
match(input,I_IMPLEMENTS,FOLLOW_I_IMPLEMENTS_in_implements_spec152);
match(input, Token.DOWN, null);
CLASS_DESCRIPTOR12=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_implements_spec154);
match(input, Token.UP, null);
type = (CLASS_DESCRIPTOR12!=null?CLASS_DESCRIPTOR12.getText():null);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return type;
}
public final List<String> implements_list() throws RecognitionException {
List<String> implementsList = null;
String implements_spec13 =null;
List<String> typeList;
try {
{
typeList = Lists.newArrayList();
loop2:
while (true) {
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==I_IMPLEMENTS) ) {
alt2=1;
}
switch (alt2) {
case 1 :
{
pushFollow(FOLLOW_implements_spec_in_implements_list184);
implements_spec13=implements_spec();
state._fsp--;
typeList.add(implements_spec13);
}
break;
default :
break loop2;
}
}
if (typeList.size() > 0) {
implementsList = typeList;
} else {
implementsList = null;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return implementsList;
}
public final String source_spec() throws RecognitionException {
String source = null;
String string_literal14 =null;
try {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==I_SOURCE) ) {
alt3=1;
}
else if ( (LA3_0==I_METHODS) ) {
alt3=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 3, 0, input);
throw nvae;
}
switch (alt3) {
case 1 :
{
source = null;
match(input,I_SOURCE,FOLLOW_I_SOURCE_in_source_spec213);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_string_literal_in_source_spec215);
string_literal14=string_literal();
state._fsp--;
source = string_literal14;
match(input, Token.UP, null);
}
break;
case 2 :
{
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return source;
}
public final int access_list() throws RecognitionException {
int value = 0;
CommonTree ACCESS_SPEC15=null;
value = 0;
try {
{
match(input,I_ACCESS_LIST,FOLLOW_I_ACCESS_LIST_in_access_list247);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop4:
while (true) {
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==ACCESS_SPEC) ) {
alt4=1;
}
switch (alt4) {
case 1 :
{
ACCESS_SPEC15=(CommonTree)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_access_list265);
value |= AccessFlags.getAccessFlag(ACCESS_SPEC15.getText()).getValue();
}
break;
default :
break loop4;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public static class access_or_restriction_list_return extends TreeRuleReturnScope {
public int value;
public Set<HiddenApiRestriction> hiddenApiRestrictions;
};
public final smaliTreeWalker.access_or_restriction_list_return access_or_restriction_list() throws RecognitionException {
smaliTreeWalker.access_or_restriction_list_return retval = new smaliTreeWalker.access_or_restriction_list_return();
retval.start = input.LT(1);
CommonTree ACCESS_SPEC16=null;
CommonTree HIDDENAPI_RESTRICTION17=null;
retval.value = 0;
HiddenApiRestriction hiddenApiRestriction = null;
HiddenApiRestriction domainSpecificApiRestriction = null;
try {
{
match(input,I_ACCESS_OR_RESTRICTION_LIST,FOLLOW_I_ACCESS_OR_RESTRICTION_LIST_in_access_or_restriction_list308);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop5:
while (true) {
int alt5=3;
int LA5_0 = input.LA(1);
if ( (LA5_0==ACCESS_SPEC) ) {
alt5=1;
}
else if ( (LA5_0==HIDDENAPI_RESTRICTION) ) {
alt5=2;
}
switch (alt5) {
case 1 :
{
ACCESS_SPEC16=(CommonTree)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_access_or_restriction_list326);
retval.value |= AccessFlags.getAccessFlag(ACCESS_SPEC16.getText()).getValue();
}
break;
case 2 :
{
HIDDENAPI_RESTRICTION17=(CommonTree)match(input,HIDDENAPI_RESTRICTION,FOLLOW_HIDDENAPI_RESTRICTION_in_access_or_restriction_list356);
if (opcodes.api < 29) {
throw new SemanticException(input, HIDDENAPI_RESTRICTION17, "Hidden API restrictions are only supported on api 29 and above.");
}
HiddenApiRestriction restriction = HiddenApiRestriction.forName(HIDDENAPI_RESTRICTION17.getText());
if (restriction.isDomainSpecificApiFlag()) {
if (domainSpecificApiRestriction != null) {
throw new SemanticException(input, HIDDENAPI_RESTRICTION17, "Only one domain-specific api restriction may be specified.");
}
domainSpecificApiRestriction = restriction;
} else {
if (hiddenApiRestriction != null) {
throw new SemanticException(input, HIDDENAPI_RESTRICTION17, "Only one hidden api restriction may be specified.");
}
hiddenApiRestriction = restriction;
}
}
break;
default :
break loop5;
}
}
match(input, Token.UP, null);
}
List<HiddenApiRestriction> restrictions = new ArrayList<>(2);
if (hiddenApiRestriction != null) {
restrictions.add(hiddenApiRestriction);
}
if (domainSpecificApiRestriction != null) {
restrictions.add(domainSpecificApiRestriction);
}
retval.hiddenApiRestrictions = ImmutableSet.copyOf(restrictions);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public final List<BuilderField> fields() throws RecognitionException {
List<BuilderField> fields = null;
BuilderField field18 =null;
fields = Lists.newArrayList();
try {
{
match(input,I_FIELDS,FOLLOW_I_FIELDS_in_fields406);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop6:
while (true) {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==I_FIELD) ) {
alt6=1;
}
switch (alt6) {
case 1 :
{
pushFollow(FOLLOW_field_in_fields415);
field18=field();
state._fsp--;
fields.add(field18);
}
break;
default :
break loop6;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return fields;
}
public final List<BuilderMethod> methods() throws RecognitionException {
List<BuilderMethod> methods = null;
BuilderMethod method19 =null;
methods = Lists.newArrayList();
try {
{
match(input,I_METHODS,FOLLOW_I_METHODS_in_methods447);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop7:
while (true) {
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==I_METHOD) ) {
alt7=1;
}
switch (alt7) {
case 1 :
{
pushFollow(FOLLOW_method_in_methods456);
method19=method();
state._fsp--;
methods.add(method19);
}
break;
default :
break loop7;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return methods;
}
public final BuilderField field() throws RecognitionException {
BuilderField field = null;
CommonTree SIMPLE_NAME22=null;
TreeRuleReturnScope access_or_restriction_list20 =null;
EncodedValue field_initial_value21 =null;
TreeRuleReturnScope nonvoid_type_descriptor23 =null;
Set<Annotation> annotations24 =null;
try {
{
match(input,I_FIELD,FOLLOW_I_FIELD_in_field481);
match(input, Token.DOWN, null);
SIMPLE_NAME22=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_field483);
pushFollow(FOLLOW_access_or_restriction_list_in_field485);
access_or_restriction_list20=access_or_restriction_list();
state._fsp--;
match(input,I_FIELD_TYPE,FOLLOW_I_FIELD_TYPE_in_field488);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_nonvoid_type_descriptor_in_field490);
nonvoid_type_descriptor23=nonvoid_type_descriptor();
state._fsp--;
match(input, Token.UP, null);
pushFollow(FOLLOW_field_initial_value_in_field493);
field_initial_value21=field_initial_value();
state._fsp--;
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==I_ANNOTATIONS) ) {
alt8=1;
}
switch (alt8) {
case 1 :
{
pushFollow(FOLLOW_annotations_in_field495);
annotations24=annotations();
state._fsp--;
}
break;
}
match(input, Token.UP, null);
int accessFlags = (access_or_restriction_list20!=null?((smaliTreeWalker.access_or_restriction_list_return)access_or_restriction_list20).value:0);
Set<HiddenApiRestriction> hiddenApiRestrictions = (access_or_restriction_list20!=null?((smaliTreeWalker.access_or_restriction_list_return)access_or_restriction_list20).hiddenApiRestrictions:null);
if (!AccessFlags.STATIC.isSet(accessFlags) && field_initial_value21 != null) {
throw new SemanticException(input, "Initial field values can only be specified for static fields.");
}
field = dexBuilder.internField(classType, (SIMPLE_NAME22!=null?SIMPLE_NAME22.getText():null), (nonvoid_type_descriptor23!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor23).type:null), accessFlags,
field_initial_value21, annotations24, hiddenApiRestrictions);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return field;
}
public final EncodedValue field_initial_value() throws RecognitionException {
EncodedValue encodedValue = null;
ImmutableEncodedValue literal25 =null;
try {
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==I_FIELD_INITIAL_VALUE) ) {
alt9=1;
}
else if ( (LA9_0==UP||LA9_0==I_ANNOTATIONS) ) {
alt9=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 9, 0, input);
throw nvae;
}
switch (alt9) {
case 1 :
{
match(input,I_FIELD_INITIAL_VALUE,FOLLOW_I_FIELD_INITIAL_VALUE_in_field_initial_value516);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_literal_in_field_initial_value518);
literal25=literal();
state._fsp--;
match(input, Token.UP, null);
encodedValue = literal25;
}
break;
case 2 :
{
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return encodedValue;
}
public final ImmutableEncodedValue literal() throws RecognitionException {
ImmutableEncodedValue encodedValue = null;
int integer_literal26 =0;
long long_literal27 =0;
short short_literal28 =0;
byte byte_literal29 =0;
float float_literal30 =0.0f;
double double_literal31 =0.0;
char char_literal32 =0;
String string_literal33 =null;
boolean bool_literal34 =false;
String type_descriptor35 =null;
List<EncodedValue> array_literal36 =null;
TreeRuleReturnScope subannotation37 =null;
ImmutableFieldReference field_literal38 =null;
ImmutableMethodReference method_literal39 =null;
ImmutableFieldReference enum_literal40 =null;
ImmutableMethodHandleReference method_handle_literal41 =null;
ImmutableMethodProtoReference method_prototype42 =null;
try {
int alt10=18;
switch ( input.LA(1) ) {
case INTEGER_LITERAL:
{
alt10=1;
}
break;
case LONG_LITERAL:
{
alt10=2;
}
break;
case SHORT_LITERAL:
{
alt10=3;
}
break;
case BYTE_LITERAL:
{
alt10=4;
}
break;
case FLOAT_LITERAL:
{
alt10=5;
}
break;
case DOUBLE_LITERAL:
{
alt10=6;
}
break;
case CHAR_LITERAL:
{
alt10=7;
}
break;
case STRING_LITERAL:
{
alt10=8;
}
break;
case BOOL_LITERAL:
{
alt10=9;
}
break;
case NULL_LITERAL:
{
alt10=10;
}
break;
case ARRAY_TYPE_PREFIX:
case CLASS_DESCRIPTOR:
case PRIMITIVE_TYPE:
case VOID_TYPE:
{
alt10=11;
}
break;
case I_ENCODED_ARRAY:
{
alt10=12;
}
break;
case I_SUBANNOTATION:
{
alt10=13;
}
break;
case I_ENCODED_FIELD:
{
alt10=14;
}
break;
case I_ENCODED_METHOD:
{
alt10=15;
}
break;
case I_ENCODED_ENUM:
{
alt10=16;
}
break;
case I_ENCODED_METHOD_HANDLE:
{
alt10=17;
}
break;
case I_METHOD_PROTOTYPE:
{
alt10=18;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 10, 0, input);
throw nvae;
}
switch (alt10) {
case 1 :
{
pushFollow(FOLLOW_integer_literal_in_literal540);
integer_literal26=integer_literal();
state._fsp--;
encodedValue = new ImmutableIntEncodedValue(integer_literal26);
}
break;
case 2 :
{
pushFollow(FOLLOW_long_literal_in_literal548);
long_literal27=long_literal();
state._fsp--;
encodedValue = new ImmutableLongEncodedValue(long_literal27);
}
break;
case 3 :
{
pushFollow(FOLLOW_short_literal_in_literal556);
short_literal28=short_literal();
state._fsp--;
encodedValue = new ImmutableShortEncodedValue(short_literal28);
}
break;
case 4 :
{
pushFollow(FOLLOW_byte_literal_in_literal564);
byte_literal29=byte_literal();
state._fsp--;
encodedValue = new ImmutableByteEncodedValue(byte_literal29);
}
break;
case 5 :
{
pushFollow(FOLLOW_float_literal_in_literal572);
float_literal30=float_literal();
state._fsp--;
encodedValue = new ImmutableFloatEncodedValue(float_literal30);
}
break;
case 6 :
{
pushFollow(FOLLOW_double_literal_in_literal580);
double_literal31=double_literal();
state._fsp--;
encodedValue = new ImmutableDoubleEncodedValue(double_literal31);
}
break;
case 7 :
{
pushFollow(FOLLOW_char_literal_in_literal588);
char_literal32=char_literal();
state._fsp--;
encodedValue = new ImmutableCharEncodedValue(char_literal32);
}
break;
case 8 :
{
pushFollow(FOLLOW_string_literal_in_literal596);
string_literal33=string_literal();
state._fsp--;
encodedValue = new ImmutableStringEncodedValue(string_literal33);
}
break;
case 9 :
{
pushFollow(FOLLOW_bool_literal_in_literal604);
bool_literal34=bool_literal();
state._fsp--;
encodedValue = ImmutableBooleanEncodedValue.forBoolean(bool_literal34);
}
break;
case 10 :
{
match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_literal612);
encodedValue = ImmutableNullEncodedValue.INSTANCE;
}
break;
case 11 :
{
pushFollow(FOLLOW_type_descriptor_in_literal620);
type_descriptor35=type_descriptor();
state._fsp--;
encodedValue = new ImmutableTypeEncodedValue(type_descriptor35);
}
break;
case 12 :
{
pushFollow(FOLLOW_array_literal_in_literal628);
array_literal36=array_literal();
state._fsp--;
encodedValue = new ImmutableArrayEncodedValue(array_literal36);
}
break;
case 13 :
{
pushFollow(FOLLOW_subannotation_in_literal636);
subannotation37=subannotation();
state._fsp--;
encodedValue = new ImmutableAnnotationEncodedValue((subannotation37!=null?((smaliTreeWalker.subannotation_return)subannotation37).annotationType:null), (subannotation37!=null?((smaliTreeWalker.subannotation_return)subannotation37).elements:null));
}
break;
case 14 :
{
pushFollow(FOLLOW_field_literal_in_literal644);
field_literal38=field_literal();
state._fsp--;
encodedValue = new ImmutableFieldEncodedValue(field_literal38);
}
break;
case 15 :
{
pushFollow(FOLLOW_method_literal_in_literal652);
method_literal39=method_literal();
state._fsp--;
encodedValue = new ImmutableMethodEncodedValue(method_literal39);
}
break;
case 16 :
{
pushFollow(FOLLOW_enum_literal_in_literal660);
enum_literal40=enum_literal();
state._fsp--;
encodedValue = new ImmutableEnumEncodedValue(enum_literal40);
}
break;
case 17 :
{
pushFollow(FOLLOW_method_handle_literal_in_literal668);
method_handle_literal41=method_handle_literal();
state._fsp--;
encodedValue = new ImmutableMethodHandleEncodedValue(method_handle_literal41);
}
break;
case 18 :
{
pushFollow(FOLLOW_method_prototype_in_literal676);
method_prototype42=method_prototype();
state._fsp--;
encodedValue = new ImmutableMethodTypeEncodedValue(method_prototype42);
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return encodedValue;
}
public final Number fixed_64bit_literal_number() throws RecognitionException {
Number value = null;
int integer_literal43 =0;
long long_literal44 =0;
short short_literal45 =0;
byte byte_literal46 =0;
float float_literal47 =0.0f;
double double_literal48 =0.0;
char char_literal49 =0;
boolean bool_literal50 =false;
try {
int alt11=8;
switch ( input.LA(1) ) {
case INTEGER_LITERAL:
{
alt11=1;
}
break;
case LONG_LITERAL:
{
alt11=2;
}
break;
case SHORT_LITERAL:
{
alt11=3;
}
break;
case BYTE_LITERAL:
{
alt11=4;
}
break;
case FLOAT_LITERAL:
{
alt11=5;
}
break;
case DOUBLE_LITERAL:
{
alt11=6;
}
break;
case CHAR_LITERAL:
{
alt11=7;
}
break;
case BOOL_LITERAL:
{
alt11=8;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
{
pushFollow(FOLLOW_integer_literal_in_fixed_64bit_literal_number692);
integer_literal43=integer_literal();
state._fsp--;
value = integer_literal43;
}
break;
case 2 :
{
pushFollow(FOLLOW_long_literal_in_fixed_64bit_literal_number700);
long_literal44=long_literal();
state._fsp--;
value = long_literal44;
}
break;
case 3 :
{
pushFollow(FOLLOW_short_literal_in_fixed_64bit_literal_number708);
short_literal45=short_literal();
state._fsp--;
value = short_literal45;
}
break;
case 4 :
{
pushFollow(FOLLOW_byte_literal_in_fixed_64bit_literal_number716);
byte_literal46=byte_literal();
state._fsp--;
value = byte_literal46;
}
break;
case 5 :
{
pushFollow(FOLLOW_float_literal_in_fixed_64bit_literal_number724);
float_literal47=float_literal();
state._fsp--;
value = Float.floatToRawIntBits(float_literal47);
}
break;
case 6 :
{
pushFollow(FOLLOW_double_literal_in_fixed_64bit_literal_number732);
double_literal48=double_literal();
state._fsp--;
value = Double.doubleToRawLongBits(double_literal48);
}
break;
case 7 :
{
pushFollow(FOLLOW_char_literal_in_fixed_64bit_literal_number740);
char_literal49=char_literal();
state._fsp--;
value = (int)char_literal49;
}
break;
case 8 :
{
pushFollow(FOLLOW_bool_literal_in_fixed_64bit_literal_number748);
bool_literal50=bool_literal();
state._fsp--;
value = bool_literal50?1:0;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final long fixed_64bit_literal() throws RecognitionException {
long value = 0;
int integer_literal51 =0;
long long_literal52 =0;
short short_literal53 =0;
byte byte_literal54 =0;
float float_literal55 =0.0f;
double double_literal56 =0.0;
char char_literal57 =0;
boolean bool_literal58 =false;
try {
int alt12=8;
switch ( input.LA(1) ) {
case INTEGER_LITERAL:
{
alt12=1;
}
break;
case LONG_LITERAL:
{
alt12=2;
}
break;
case SHORT_LITERAL:
{
alt12=3;
}
break;
case BYTE_LITERAL:
{
alt12=4;
}
break;
case FLOAT_LITERAL:
{
alt12=5;
}
break;
case DOUBLE_LITERAL:
{
alt12=6;
}
break;
case CHAR_LITERAL:
{
alt12=7;
}
break;
case BOOL_LITERAL:
{
alt12=8;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
{
pushFollow(FOLLOW_integer_literal_in_fixed_64bit_literal763);
integer_literal51=integer_literal();
state._fsp--;
value = integer_literal51;
}
break;
case 2 :
{
pushFollow(FOLLOW_long_literal_in_fixed_64bit_literal771);
long_literal52=long_literal();
state._fsp--;
value = long_literal52;
}
break;
case 3 :
{
pushFollow(FOLLOW_short_literal_in_fixed_64bit_literal779);
short_literal53=short_literal();
state._fsp--;
value = short_literal53;
}
break;
case 4 :
{
pushFollow(FOLLOW_byte_literal_in_fixed_64bit_literal787);
byte_literal54=byte_literal();
state._fsp--;
value = byte_literal54;
}
break;
case 5 :
{
pushFollow(FOLLOW_float_literal_in_fixed_64bit_literal795);
float_literal55=float_literal();
state._fsp--;
value = Float.floatToRawIntBits(float_literal55);
}
break;
case 6 :
{
pushFollow(FOLLOW_double_literal_in_fixed_64bit_literal803);
double_literal56=double_literal();
state._fsp--;
value = Double.doubleToRawLongBits(double_literal56);
}
break;
case 7 :
{
pushFollow(FOLLOW_char_literal_in_fixed_64bit_literal811);
char_literal57=char_literal();
state._fsp--;
value = char_literal57;
}
break;
case 8 :
{
pushFollow(FOLLOW_bool_literal_in_fixed_64bit_literal819);
bool_literal58=bool_literal();
state._fsp--;
value = bool_literal58?1:0;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final int fixed_32bit_literal() throws RecognitionException {
int value = 0;
int integer_literal59 =0;
long long_literal60 =0;
short short_literal61 =0;
byte byte_literal62 =0;
float float_literal63 =0.0f;
char char_literal64 =0;
boolean bool_literal65 =false;
try {
int alt13=7;
switch ( input.LA(1) ) {
case INTEGER_LITERAL:
{
alt13=1;
}
break;
case LONG_LITERAL:
{
alt13=2;
}
break;
case SHORT_LITERAL:
{
alt13=3;
}
break;
case BYTE_LITERAL:
{
alt13=4;
}
break;
case FLOAT_LITERAL:
{
alt13=5;
}
break;
case CHAR_LITERAL:
{
alt13=6;
}
break;
case BOOL_LITERAL:
{
alt13=7;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
{
pushFollow(FOLLOW_integer_literal_in_fixed_32bit_literal836);
integer_literal59=integer_literal();
state._fsp--;
value = integer_literal59;
}
break;
case 2 :
{
pushFollow(FOLLOW_long_literal_in_fixed_32bit_literal844);
long_literal60=long_literal();
state._fsp--;
LiteralTools.checkInt(long_literal60); value = (int)long_literal60;
}
break;
case 3 :
{
pushFollow(FOLLOW_short_literal_in_fixed_32bit_literal852);
short_literal61=short_literal();
state._fsp--;
value = short_literal61;
}
break;
case 4 :
{
pushFollow(FOLLOW_byte_literal_in_fixed_32bit_literal860);
byte_literal62=byte_literal();
state._fsp--;
value = byte_literal62;
}
break;
case 5 :
{
pushFollow(FOLLOW_float_literal_in_fixed_32bit_literal868);
float_literal63=float_literal();
state._fsp--;
value = Float.floatToRawIntBits(float_literal63);
}
break;
case 6 :
{
pushFollow(FOLLOW_char_literal_in_fixed_32bit_literal876);
char_literal64=char_literal();
state._fsp--;
value = char_literal64;
}
break;
case 7 :
{
pushFollow(FOLLOW_bool_literal_in_fixed_32bit_literal884);
bool_literal65=bool_literal();
state._fsp--;
value = bool_literal65?1:0;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final List<Number> array_elements() throws RecognitionException {
List<Number> elements = null;
Number fixed_64bit_literal_number66 =null;
try {
{
elements = Lists.newArrayList();
match(input,I_ARRAY_ELEMENTS,FOLLOW_I_ARRAY_ELEMENTS_in_array_elements906);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop14:
while (true) {
int alt14=2;
int LA14_0 = input.LA(1);
if ( ((LA14_0 >= BOOL_LITERAL && LA14_0 <= BYTE_LITERAL)||LA14_0==CHAR_LITERAL||LA14_0==DOUBLE_LITERAL||LA14_0==FLOAT_LITERAL||LA14_0==INTEGER_LITERAL||LA14_0==LONG_LITERAL||LA14_0==SHORT_LITERAL) ) {
alt14=1;
}
switch (alt14) {
case 1 :
{
pushFollow(FOLLOW_fixed_64bit_literal_number_in_array_elements915);
fixed_64bit_literal_number66=fixed_64bit_literal_number();
state._fsp--;
elements.add(fixed_64bit_literal_number66);
}
break;
default :
break loop14;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return elements;
}
public final List<Label> packed_switch_elements() throws RecognitionException {
List<Label> elements = null;
Label label_ref67 =null;
elements = Lists.newArrayList();
try {
{
match(input,I_PACKED_SWITCH_ELEMENTS,FOLLOW_I_PACKED_SWITCH_ELEMENTS_in_packed_switch_elements951);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop15:
while (true) {
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==SIMPLE_NAME) ) {
alt15=1;
}
switch (alt15) {
case 1 :
{
pushFollow(FOLLOW_label_ref_in_packed_switch_elements960);
label_ref67=label_ref();
state._fsp--;
elements.add(label_ref67);
}
break;
default :
break loop15;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return elements;
}
public final List<SwitchLabelElement> sparse_switch_elements() throws RecognitionException {
List<SwitchLabelElement> elements = null;
int fixed_32bit_literal68 =0;
Label label_ref69 =null;
elements = Lists.newArrayList();
try {
{
match(input,I_SPARSE_SWITCH_ELEMENTS,FOLLOW_I_SPARSE_SWITCH_ELEMENTS_in_sparse_switch_elements995);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop16:
while (true) {
int alt16=2;
int LA16_0 = input.LA(1);
if ( ((LA16_0 >= BOOL_LITERAL && LA16_0 <= BYTE_LITERAL)||LA16_0==CHAR_LITERAL||LA16_0==FLOAT_LITERAL||LA16_0==INTEGER_LITERAL||LA16_0==LONG_LITERAL||LA16_0==SHORT_LITERAL) ) {
alt16=1;
}
switch (alt16) {
case 1 :
{
pushFollow(FOLLOW_fixed_32bit_literal_in_sparse_switch_elements1005);
fixed_32bit_literal68=fixed_32bit_literal();
state._fsp--;
pushFollow(FOLLOW_label_ref_in_sparse_switch_elements1007);
label_ref69=label_ref();
state._fsp--;
elements.add(new SwitchLabelElement(fixed_32bit_literal68, label_ref69));
}
break;
default :
break loop16;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return elements;
}
protected static class method_scope {
boolean isStatic;
int totalMethodRegisters;
int methodParameterRegisters;
MethodImplementationBuilder methodBuilder;
}
protected Stack<method_scope> method_stack = new Stack<method_scope>();
public final BuilderMethod method() throws RecognitionException {
method_stack.push(new method_scope());
BuilderMethod ret = null;
CommonTree I_METHOD74=null;
TreeRuleReturnScope access_or_restriction_list70 =null;
TreeRuleReturnScope method_name_and_prototype71 =null;
TreeRuleReturnScope registers_directive72 =null;
List<BuilderTryBlock> catches73 =null;
Set<Annotation> annotations75 =null;
method_stack.peek().totalMethodRegisters = 0;
method_stack.peek().methodParameterRegisters = 0;
int accessFlags = 0;
method_stack.peek().isStatic = false;
Set<HiddenApiRestriction> hiddenApiRestrictions = null;
try {
{
I_METHOD74=(CommonTree)match(input,I_METHOD,FOLLOW_I_METHOD_in_method1059);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_method_name_and_prototype_in_method1067);
method_name_and_prototype71=method_name_and_prototype();
state._fsp--;
pushFollow(FOLLOW_access_or_restriction_list_in_method1075);
access_or_restriction_list70=access_or_restriction_list();
state._fsp--;
accessFlags = (access_or_restriction_list70!=null?((smaliTreeWalker.access_or_restriction_list_return)access_or_restriction_list70).value:0);
hiddenApiRestrictions = (access_or_restriction_list70!=null?((smaliTreeWalker.access_or_restriction_list_return)access_or_restriction_list70).hiddenApiRestrictions:null);
method_stack.peek().isStatic = AccessFlags.STATIC.isSet(accessFlags);
method_stack.peek().methodParameterRegisters =
MethodUtil.getParameterRegisterCount((method_name_and_prototype71!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype71).parameters:null), method_stack.peek().isStatic);
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==I_LOCALS||LA17_0==I_REGISTERS) ) {
alt17=1;
}
else if ( (LA17_0==I_ORDERED_METHOD_ITEMS) ) {
alt17=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 17, 0, input);
throw nvae;
}
switch (alt17) {
case 1 :
{
{
pushFollow(FOLLOW_registers_directive_in_method1102);
registers_directive72=registers_directive();
state._fsp--;
if ((registers_directive72!=null?((smaliTreeWalker.registers_directive_return)registers_directive72).isLocalsDirective:false)) {
method_stack.peek().totalMethodRegisters = (registers_directive72!=null?((smaliTreeWalker.registers_directive_return)registers_directive72).registers:0) + method_stack.peek().methodParameterRegisters;
} else {
method_stack.peek().totalMethodRegisters = (registers_directive72!=null?((smaliTreeWalker.registers_directive_return)registers_directive72).registers:0);
}
method_stack.peek().methodBuilder = new MethodImplementationBuilder(method_stack.peek().totalMethodRegisters);
}
}
break;
case 2 :
{
method_stack.peek().methodBuilder = new MethodImplementationBuilder(0);
}
break;
}
pushFollow(FOLLOW_ordered_method_items_in_method1159);
ordered_method_items();
state._fsp--;
pushFollow(FOLLOW_catches_in_method1167);
catches73=catches();
state._fsp--;
pushFollow(FOLLOW_parameters_in_method1175);
parameters((method_name_and_prototype71!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype71).parameters:null));
state._fsp--;
pushFollow(FOLLOW_annotations_in_method1184);
annotations75=annotations();
state._fsp--;
match(input, Token.UP, null);
MethodImplementation methodImplementation = null;
List<BuilderTryBlock> tryBlocks = catches73;
boolean isAbstract = false;
boolean isNative = false;
if ((accessFlags & AccessFlags.ABSTRACT.getValue()) != 0) {
isAbstract = true;
} else if ((accessFlags & AccessFlags.NATIVE.getValue()) != 0) {
isNative = true;
}
methodImplementation = method_stack.peek().methodBuilder.getMethodImplementation();
if (Iterables.isEmpty(methodImplementation.getInstructions())) {
if (!isAbstract && !isNative) {
throw new SemanticException(input, I_METHOD74, "A non-abstract/non-native method must have at least 1 instruction");
}
String methodType;
if (isAbstract) {
methodType = "an abstract";
} else {
methodType = "a native";
}
if ((registers_directive72!=null?((CommonTree)registers_directive72.start):null) != null) {
if ((registers_directive72!=null?((smaliTreeWalker.registers_directive_return)registers_directive72).isLocalsDirective:false)) {
throw new SemanticException(input, (registers_directive72!=null?((CommonTree)registers_directive72.start):null), "A .locals directive is not valid in %s method", methodType);
} else {
throw new SemanticException(input, (registers_directive72!=null?((CommonTree)registers_directive72.start):null), "A .registers directive is not valid in %s method", methodType);
}
}
if (methodImplementation.getTryBlocks().size() > 0) {
throw new SemanticException(input, I_METHOD74, "try/catch blocks cannot be present in %s method", methodType);
}
if (!Iterables.isEmpty(methodImplementation.getDebugItems())) {
throw new SemanticException(input, I_METHOD74, "debug directives cannot be present in %s method", methodType);
}
methodImplementation = null;
} else {
if (isAbstract) {
throw new SemanticException(input, I_METHOD74, "An abstract method cannot have any instructions");
}
if (isNative) {
throw new SemanticException(input, I_METHOD74, "A native method cannot have any instructions");
}
if ((registers_directive72!=null?((CommonTree)registers_directive72.start):null) == null) {
throw new SemanticException(input, I_METHOD74, "A .registers or .locals directive must be present for a non-abstract/non-final method");
}
if (method_stack.peek().totalMethodRegisters < method_stack.peek().methodParameterRegisters) {
throw new SemanticException(input, (registers_directive72!=null?((CommonTree)registers_directive72.start):null), "This method requires at least " +
Integer.toString(method_stack.peek().methodParameterRegisters) +
" registers, for the method parameters");
}
}
ret = dexBuilder.internMethod(
classType,
(method_name_and_prototype71!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype71).name:null),
(method_name_and_prototype71!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype71).parameters:null),
(method_name_and_prototype71!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype71).returnType:null),
accessFlags,
annotations75,
hiddenApiRestrictions,
methodImplementation);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
method_stack.pop();
}
return ret;
}
public final ImmutableMethodProtoReference method_prototype() throws RecognitionException {
ImmutableMethodProtoReference proto = null;
String type_descriptor76 =null;
List<String> method_type_list77 =null;
try {
{
match(input,I_METHOD_PROTOTYPE,FOLLOW_I_METHOD_PROTOTYPE_in_method_prototype1208);
match(input, Token.DOWN, null);
match(input,I_METHOD_RETURN_TYPE,FOLLOW_I_METHOD_RETURN_TYPE_in_method_prototype1211);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_type_descriptor_in_method_prototype1213);
type_descriptor76=type_descriptor();
state._fsp--;
match(input, Token.UP, null);
pushFollow(FOLLOW_method_type_list_in_method_prototype1216);
method_type_list77=method_type_list();
state._fsp--;
match(input, Token.UP, null);
String returnType = type_descriptor76;
List<String> parameters = method_type_list77;
proto = new ImmutableMethodProtoReference(parameters, returnType);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return proto;
}
public static class method_name_and_prototype_return extends TreeRuleReturnScope {
public String name;
public List<SmaliMethodParameter> parameters;
public String returnType;
};
public final smaliTreeWalker.method_name_and_prototype_return method_name_and_prototype() throws RecognitionException {
smaliTreeWalker.method_name_and_prototype_return retval = new smaliTreeWalker.method_name_and_prototype_return();
retval.start = input.LT(1);
CommonTree SIMPLE_NAME78=null;
ImmutableMethodProtoReference method_prototype79 =null;
try {
{
SIMPLE_NAME78=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_method_name_and_prototype1234);
pushFollow(FOLLOW_method_prototype_in_method_name_and_prototype1236);
method_prototype79=method_prototype();
state._fsp--;
retval.name = (SIMPLE_NAME78!=null?SIMPLE_NAME78.getText():null);
retval.parameters = Lists.newArrayList();
int paramRegister = 0;
for (CharSequence type: method_prototype79.getParameterTypes()) {
retval.parameters.add(new SmaliMethodParameter(paramRegister++, type.toString()));
char c = type.charAt(0);
if (c == 'D' || c == 'J') {
paramRegister++;
}
}
retval.returnType = method_prototype79.getReturnType();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public final List<String> method_type_list() throws RecognitionException {
List<String> types = null;
TreeRuleReturnScope nonvoid_type_descriptor80 =null;
types = Lists.newArrayList();
try {
{
loop18:
while (true) {
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==ARRAY_TYPE_PREFIX||LA18_0==CLASS_DESCRIPTOR||LA18_0==PRIMITIVE_TYPE) ) {
alt18=1;
}
switch (alt18) {
case 1 :
{
pushFollow(FOLLOW_nonvoid_type_descriptor_in_method_type_list1270);
nonvoid_type_descriptor80=nonvoid_type_descriptor();
state._fsp--;
types.add((nonvoid_type_descriptor80!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor80).type:null));
}
break;
default :
break loop18;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return types;
}
public final ImmutableCallSiteReference call_site_reference() throws RecognitionException {
ImmutableCallSiteReference callSiteReference = null;
CommonTree call_site_name=null;
String method_name =null;
ImmutableMethodReference method_reference81 =null;
ImmutableMethodProtoReference method_prototype82 =null;
List<ImmutableEncodedValue> call_site_extra_arguments83 =null;
try {
{
match(input,I_CALL_SITE_REFERENCE,FOLLOW_I_CALL_SITE_REFERENCE_in_call_site_reference1301);
match(input, Token.DOWN, null);
call_site_name=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_call_site_reference1305);
pushFollow(FOLLOW_string_literal_in_call_site_reference1309);
method_name=string_literal();
state._fsp--;
pushFollow(FOLLOW_method_prototype_in_call_site_reference1311);
method_prototype82=method_prototype();
state._fsp--;
pushFollow(FOLLOW_call_site_extra_arguments_in_call_site_reference1321);
call_site_extra_arguments83=call_site_extra_arguments();
state._fsp--;
pushFollow(FOLLOW_method_reference_in_call_site_reference1323);
method_reference81=method_reference();
state._fsp--;
match(input, Token.UP, null);
String callSiteName = (call_site_name!=null?call_site_name.getText():null);
ImmutableMethodHandleReference methodHandleReference =
new ImmutableMethodHandleReference(MethodHandleType.INVOKE_STATIC,
method_reference81);
callSiteReference = new ImmutableCallSiteReference(
callSiteName, methodHandleReference, method_name, method_prototype82,
call_site_extra_arguments83);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return callSiteReference;
}
public static class method_handle_type_return extends TreeRuleReturnScope {
public int methodHandleType;
};
public final smaliTreeWalker.method_handle_type_return method_handle_type() throws RecognitionException {
smaliTreeWalker.method_handle_type_return retval = new smaliTreeWalker.method_handle_type_return();
retval.start = input.LT(1);
try {
{
if ( input.LA(1)==INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE||(input.LA(1) >= METHOD_HANDLE_TYPE_FIELD && input.LA(1) <= METHOD_HANDLE_TYPE_METHOD) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
retval.methodHandleType = MethodHandleType.getMethodHandleType(input.getTokenStream().toString(input.getTreeAdaptor().getTokenStartIndex(retval.start),input.getTreeAdaptor().getTokenStopIndex(retval.start)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public final ImmutableMethodHandleReference method_handle_reference() throws RecognitionException {
ImmutableMethodHandleReference methodHandle = null;
TreeRuleReturnScope field_reference84 =null;
ImmutableMethodReference method_reference85 =null;
TreeRuleReturnScope method_handle_type86 =null;
try {
{
pushFollow(FOLLOW_method_handle_type_in_method_handle_reference1368);
method_handle_type86=method_handle_type();
state._fsp--;
int alt19=2;
switch ( input.LA(1) ) {
case CLASS_DESCRIPTOR:
{
int LA19_1 = input.LA(2);
if ( (LA19_1==SIMPLE_NAME) ) {
int LA19_3 = input.LA(3);
if ( (LA19_3==ARRAY_TYPE_PREFIX||LA19_3==CLASS_DESCRIPTOR||LA19_3==PRIMITIVE_TYPE) ) {
alt19=1;
}
else if ( (LA19_3==I_METHOD_PROTOTYPE) ) {
alt19=2;
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 19, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 19, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ARRAY_TYPE_PREFIX:
{
int LA19_2 = input.LA(2);
if ( (LA19_2==PRIMITIVE_TYPE) ) {
int LA19_4 = input.LA(3);
if ( (LA19_4==SIMPLE_NAME) ) {
int LA19_3 = input.LA(4);
if ( (LA19_3==ARRAY_TYPE_PREFIX||LA19_3==CLASS_DESCRIPTOR||LA19_3==PRIMITIVE_TYPE) ) {
alt19=1;
}
else if ( (LA19_3==I_METHOD_PROTOTYPE) ) {
alt19=2;
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 19, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 19, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA19_2==CLASS_DESCRIPTOR) ) {
int LA19_5 = input.LA(3);
if ( (LA19_5==SIMPLE_NAME) ) {
int LA19_3 = input.LA(4);
if ( (LA19_3==ARRAY_TYPE_PREFIX||LA19_3==CLASS_DESCRIPTOR||LA19_3==PRIMITIVE_TYPE) ) {
alt19=1;
}
else if ( (LA19_3==I_METHOD_PROTOTYPE) ) {
alt19=2;
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 19, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 19, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 19, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SIMPLE_NAME:
{
int LA19_3 = input.LA(2);
if ( (LA19_3==ARRAY_TYPE_PREFIX||LA19_3==CLASS_DESCRIPTOR||LA19_3==PRIMITIVE_TYPE) ) {
alt19=1;
}
else if ( (LA19_3==I_METHOD_PROTOTYPE) ) {
alt19=2;
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 19, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 19, 0, input);
throw nvae;
}
switch (alt19) {
case 1 :
{
pushFollow(FOLLOW_field_reference_in_method_handle_reference1371);
field_reference84=field_reference();
state._fsp--;
}
break;
case 2 :
{
pushFollow(FOLLOW_method_reference_in_method_handle_reference1375);
method_reference85=method_reference();
state._fsp--;
}
break;
}
ImmutableReference reference;
if ((field_reference84!=null?(input.getTokenStream().toString(input.getTreeAdaptor().getTokenStartIndex(field_reference84.start),input.getTreeAdaptor().getTokenStopIndex(field_reference84.start))):null) != null) {
reference = (field_reference84!=null?((smaliTreeWalker.field_reference_return)field_reference84).fieldReference:null);
} else {
reference = method_reference85;
}
methodHandle = new ImmutableMethodHandleReference((method_handle_type86!=null?((smaliTreeWalker.method_handle_type_return)method_handle_type86).methodHandleType:0), reference);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return methodHandle;
}
public final ImmutableMethodHandleReference method_handle_literal() throws RecognitionException {
ImmutableMethodHandleReference value = null;
ImmutableMethodHandleReference method_handle_reference87 =null;
try {
{
match(input,I_ENCODED_METHOD_HANDLE,FOLLOW_I_ENCODED_METHOD_HANDLE_in_method_handle_literal1392);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_method_handle_reference_in_method_handle_literal1394);
method_handle_reference87=method_handle_reference();
state._fsp--;
match(input, Token.UP, null);
value = method_handle_reference87;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final ImmutableMethodReference method_reference() throws RecognitionException {
ImmutableMethodReference methodReference = null;
CommonTree SIMPLE_NAME89=null;
TreeRuleReturnScope reference_type_descriptor88 =null;
ImmutableMethodProtoReference method_prototype90 =null;
try {
{
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==ARRAY_TYPE_PREFIX||LA20_0==CLASS_DESCRIPTOR) ) {
alt20=1;
}
switch (alt20) {
case 1 :
{
pushFollow(FOLLOW_reference_type_descriptor_in_method_reference1410);
reference_type_descriptor88=reference_type_descriptor();
state._fsp--;
}
break;
}
SIMPLE_NAME89=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_method_reference1413);
pushFollow(FOLLOW_method_prototype_in_method_reference1415);
method_prototype90=method_prototype();
state._fsp--;
String type;
if ((reference_type_descriptor88!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor88).type:null) == null) {
type = classType;
} else {
type = (reference_type_descriptor88!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor88).type:null);
}
methodReference = new ImmutableMethodReference(type, (SIMPLE_NAME89!=null?SIMPLE_NAME89.getText():null),
method_prototype90.getParameterTypes(), method_prototype90.getReturnType());
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return methodReference;
}
public static class field_reference_return extends TreeRuleReturnScope {
public ImmutableFieldReference fieldReference;
};
public final smaliTreeWalker.field_reference_return field_reference() throws RecognitionException {
smaliTreeWalker.field_reference_return retval = new smaliTreeWalker.field_reference_return();
retval.start = input.LT(1);
CommonTree SIMPLE_NAME92=null;
TreeRuleReturnScope reference_type_descriptor91 =null;
TreeRuleReturnScope nonvoid_type_descriptor93 =null;
try {
{
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==ARRAY_TYPE_PREFIX||LA21_0==CLASS_DESCRIPTOR) ) {
alt21=1;
}
switch (alt21) {
case 1 :
{
pushFollow(FOLLOW_reference_type_descriptor_in_field_reference1432);
reference_type_descriptor91=reference_type_descriptor();
state._fsp--;
}
break;
}
SIMPLE_NAME92=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_field_reference1435);
pushFollow(FOLLOW_nonvoid_type_descriptor_in_field_reference1437);
nonvoid_type_descriptor93=nonvoid_type_descriptor();
state._fsp--;
String type;
if ((reference_type_descriptor91!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor91).type:null) == null) {
type = classType;
} else {
type = (reference_type_descriptor91!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor91).type:null);
}
retval.fieldReference = new ImmutableFieldReference(type, (SIMPLE_NAME92!=null?SIMPLE_NAME92.getText():null),
(nonvoid_type_descriptor93!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor93).type:null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public static class registers_directive_return extends TreeRuleReturnScope {
public boolean isLocalsDirective;
public int registers;
};
public final smaliTreeWalker.registers_directive_return registers_directive() throws RecognitionException {
smaliTreeWalker.registers_directive_return retval = new smaliTreeWalker.registers_directive_return();
retval.start = input.LT(1);
short short_integral_literal94 =0;
try {
{
retval.registers = 0;
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==I_REGISTERS) ) {
alt22=1;
}
else if ( (LA22_0==I_LOCALS) ) {
alt22=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 22, 0, input);
throw nvae;
}
switch (alt22) {
case 1 :
{
match(input,I_REGISTERS,FOLLOW_I_REGISTERS_in_registers_directive1463);
retval.isLocalsDirective = false;
}
break;
case 2 :
{
match(input,I_LOCALS,FOLLOW_I_LOCALS_in_registers_directive1475);
retval.isLocalsDirective = true;
}
break;
}
match(input, Token.DOWN, null);
pushFollow(FOLLOW_short_integral_literal_in_registers_directive1493);
short_integral_literal94=short_integral_literal();
state._fsp--;
retval.registers = short_integral_literal94 & 0xFFFF;
match(input, Token.UP, null);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public final void label_def() throws RecognitionException {
CommonTree SIMPLE_NAME95=null;
try {
{
match(input,I_LABEL,FOLLOW_I_LABEL_in_label_def1513);
match(input, Token.DOWN, null);
SIMPLE_NAME95=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_label_def1515);
match(input, Token.UP, null);
method_stack.peek().methodBuilder.addLabel((SIMPLE_NAME95!=null?SIMPLE_NAME95.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final List<BuilderTryBlock> catches() throws RecognitionException {
List<BuilderTryBlock> tryBlocks = null;
tryBlocks = Lists.newArrayList();
try {
{
match(input,I_CATCHES,FOLLOW_I_CATCHES_in_catches1541);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop23:
while (true) {
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==I_CATCH) ) {
alt23=1;
}
switch (alt23) {
case 1 :
{
pushFollow(FOLLOW_catch_directive_in_catches1543);
catch_directive();
state._fsp--;
}
break;
default :
break loop23;
}
}
loop24:
while (true) {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==I_CATCHALL) ) {
alt24=1;
}
switch (alt24) {
case 1 :
{
pushFollow(FOLLOW_catchall_directive_in_catches1546);
catchall_directive();
state._fsp--;
}
break;
default :
break loop24;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return tryBlocks;
}
public final void catch_directive() throws RecognitionException {
Label from =null;
Label to =null;
Label using =null;
TreeRuleReturnScope nonvoid_type_descriptor96 =null;
try {
{
match(input,I_CATCH,FOLLOW_I_CATCH_in_catch_directive1559);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_nonvoid_type_descriptor_in_catch_directive1561);
nonvoid_type_descriptor96=nonvoid_type_descriptor();
state._fsp--;
pushFollow(FOLLOW_label_ref_in_catch_directive1565);
from=label_ref();
state._fsp--;
pushFollow(FOLLOW_label_ref_in_catch_directive1569);
to=label_ref();
state._fsp--;
pushFollow(FOLLOW_label_ref_in_catch_directive1573);
using=label_ref();
state._fsp--;
match(input, Token.UP, null);
method_stack.peek().methodBuilder.addCatch(dexBuilder.internTypeReference((nonvoid_type_descriptor96!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor96).type:null)),
from, to, using);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void catchall_directive() throws RecognitionException {
Label from =null;
Label to =null;
Label using =null;
try {
{
match(input,I_CATCHALL,FOLLOW_I_CATCHALL_in_catchall_directive1589);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_label_ref_in_catchall_directive1593);
from=label_ref();
state._fsp--;
pushFollow(FOLLOW_label_ref_in_catchall_directive1597);
to=label_ref();
state._fsp--;
pushFollow(FOLLOW_label_ref_in_catchall_directive1601);
using=label_ref();
state._fsp--;
match(input, Token.UP, null);
method_stack.peek().methodBuilder.addCatch(from, to, using);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void parameters(List<SmaliMethodParameter> parameters) throws RecognitionException {
try {
{
match(input,I_PARAMETERS,FOLLOW_I_PARAMETERS_in_parameters1618);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop25:
while (true) {
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==I_PARAMETER) ) {
alt25=1;
}
switch (alt25) {
case 1 :
{
pushFollow(FOLLOW_parameter_in_parameters1621);
parameter(parameters);
state._fsp--;
}
break;
default :
break loop25;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void parameter(List<SmaliMethodParameter> parameters) throws RecognitionException {
CommonTree REGISTER97=null;
CommonTree I_PARAMETER98=null;
String string_literal99 =null;
Set<Annotation> annotations100 =null;
try {
{
I_PARAMETER98=(CommonTree)match(input,I_PARAMETER,FOLLOW_I_PARAMETER_in_parameter1637);
match(input, Token.DOWN, null);
REGISTER97=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_parameter1639);
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==STRING_LITERAL) ) {
alt26=1;
}
switch (alt26) {
case 1 :
{
pushFollow(FOLLOW_string_literal_in_parameter1641);
string_literal99=string_literal();
state._fsp--;
}
break;
}
pushFollow(FOLLOW_annotations_in_parameter1644);
annotations100=annotations();
state._fsp--;
match(input, Token.UP, null);
final int registerNumber = parseRegister_short((REGISTER97!=null?REGISTER97.getText():null));
int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
if (registerNumber >= totalMethodRegisters) {
throw new SemanticException(input, I_PARAMETER98, "Register %s is larger than the maximum register v%d " +
"for this method", (REGISTER97!=null?REGISTER97.getText():null), totalMethodRegisters-1);
}
final int indexGuess = registerNumber - (totalMethodRegisters - methodParameterRegisters) - (method_stack.peek().isStatic?0:1);
if (indexGuess < 0) {
throw new SemanticException(input, I_PARAMETER98, "Register %s is not a parameter register.",
(REGISTER97!=null?REGISTER97.getText():null));
}
int parameterIndex = LinearSearch.linearSearch(parameters, SmaliMethodParameter.COMPARATOR,
new WithRegister() { public int getRegister() { return indexGuess; } },
indexGuess);
if (parameterIndex < 0) {
throw new SemanticException(input, I_PARAMETER98, "Register %s is the second half of a wide parameter.",
(REGISTER97!=null?REGISTER97.getText():null));
}
SmaliMethodParameter methodParameter = parameters.get(parameterIndex);
methodParameter.name = string_literal99;
if (annotations100 != null && annotations100.size() > 0) {
methodParameter.annotations = annotations100;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void debug_directive() throws RecognitionException {
try {
int alt27=7;
switch ( input.LA(1) ) {
case I_LINE:
{
alt27=1;
}
break;
case I_LOCAL:
{
alt27=2;
}
break;
case I_END_LOCAL:
{
alt27=3;
}
break;
case I_RESTART_LOCAL:
{
alt27=4;
}
break;
case I_PROLOGUE:
{
alt27=5;
}
break;
case I_EPILOGUE:
{
alt27=6;
}
break;
case I_SOURCE:
{
alt27=7;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 27, 0, input);
throw nvae;
}
switch (alt27) {
case 1 :
{
pushFollow(FOLLOW_line_in_debug_directive1661);
line();
state._fsp--;
}
break;
case 2 :
{
pushFollow(FOLLOW_local_in_debug_directive1667);
local();
state._fsp--;
}
break;
case 3 :
{
pushFollow(FOLLOW_end_local_in_debug_directive1673);
end_local();
state._fsp--;
}
break;
case 4 :
{
pushFollow(FOLLOW_restart_local_in_debug_directive1679);
restart_local();
state._fsp--;
}
break;
case 5 :
{
pushFollow(FOLLOW_prologue_in_debug_directive1685);
prologue();
state._fsp--;
}
break;
case 6 :
{
pushFollow(FOLLOW_epilogue_in_debug_directive1691);
epilogue();
state._fsp--;
}
break;
case 7 :
{
pushFollow(FOLLOW_source_in_debug_directive1697);
source();
state._fsp--;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void line() throws RecognitionException {
int integral_literal101 =0;
try {
{
match(input,I_LINE,FOLLOW_I_LINE_in_line1708);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_integral_literal_in_line1710);
integral_literal101=integral_literal();
state._fsp--;
match(input, Token.UP, null);
method_stack.peek().methodBuilder.addLineNumber(integral_literal101);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void local() throws RecognitionException {
CommonTree REGISTER102=null;
String name =null;
String signature =null;
TreeRuleReturnScope nonvoid_type_descriptor103 =null;
try {
{
match(input,I_LOCAL,FOLLOW_I_LOCAL_in_local1728);
match(input, Token.DOWN, null);
REGISTER102=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_local1730);
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==NULL_LITERAL||LA31_0==STRING_LITERAL) ) {
alt31=1;
}
switch (alt31) {
case 1 :
{
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==NULL_LITERAL) ) {
alt28=1;
}
else if ( (LA28_0==STRING_LITERAL) ) {
alt28=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 28, 0, input);
throw nvae;
}
switch (alt28) {
case 1 :
{
match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_local1734);
}
break;
case 2 :
{
pushFollow(FOLLOW_string_literal_in_local1740);
name=string_literal();
state._fsp--;
}
break;
}
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==ARRAY_TYPE_PREFIX||LA29_0==CLASS_DESCRIPTOR||LA29_0==PRIMITIVE_TYPE) ) {
alt29=1;
}
switch (alt29) {
case 1 :
{
pushFollow(FOLLOW_nonvoid_type_descriptor_in_local1743);
nonvoid_type_descriptor103=nonvoid_type_descriptor();
state._fsp--;
}
break;
}
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==STRING_LITERAL) ) {
alt30=1;
}
switch (alt30) {
case 1 :
{
pushFollow(FOLLOW_string_literal_in_local1748);
signature=string_literal();
state._fsp--;
}
break;
}
}
break;
}
match(input, Token.UP, null);
int registerNumber = parseRegister_short((REGISTER102!=null?REGISTER102.getText():null));
method_stack.peek().methodBuilder.addStartLocal(registerNumber,
dexBuilder.internNullableStringReference(name),
dexBuilder.internNullableTypeReference((nonvoid_type_descriptor103!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor103).type:null)),
dexBuilder.internNullableStringReference(signature));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void end_local() throws RecognitionException {
CommonTree REGISTER104=null;
try {
{
match(input,I_END_LOCAL,FOLLOW_I_END_LOCAL_in_end_local1769);
match(input, Token.DOWN, null);
REGISTER104=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_end_local1771);
match(input, Token.UP, null);
int registerNumber = parseRegister_short((REGISTER104!=null?REGISTER104.getText():null));
method_stack.peek().methodBuilder.addEndLocal(registerNumber);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void restart_local() throws RecognitionException {
CommonTree REGISTER105=null;
try {
{
match(input,I_RESTART_LOCAL,FOLLOW_I_RESTART_LOCAL_in_restart_local1789);
match(input, Token.DOWN, null);
REGISTER105=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_restart_local1791);
match(input, Token.UP, null);
int registerNumber = parseRegister_short((REGISTER105!=null?REGISTER105.getText():null));
method_stack.peek().methodBuilder.addRestartLocal(registerNumber);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void prologue() throws RecognitionException {
try {
{
match(input,I_PROLOGUE,FOLLOW_I_PROLOGUE_in_prologue1808);
method_stack.peek().methodBuilder.addPrologue();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void epilogue() throws RecognitionException {
try {
{
match(input,I_EPILOGUE,FOLLOW_I_EPILOGUE_in_epilogue1824);
method_stack.peek().methodBuilder.addEpilogue();
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void source() throws RecognitionException {
String string_literal106 =null;
try {
{
match(input,I_SOURCE,FOLLOW_I_SOURCE_in_source1841);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==STRING_LITERAL) ) {
alt32=1;
}
switch (alt32) {
case 1 :
{
pushFollow(FOLLOW_string_literal_in_source1843);
string_literal106=string_literal();
state._fsp--;
}
break;
}
match(input, Token.UP, null);
}
method_stack.peek().methodBuilder.addSetSourceFile(dexBuilder.internNullableStringReference(string_literal106));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final List<ImmutableEncodedValue> () throws RecognitionException {
List<ImmutableEncodedValue> extraArguments = null;
ImmutableEncodedValue literal107 =null;
try {
{
extraArguments = Lists.newArrayList();
match(input,I_CALL_SITE_EXTRA_ARGUMENTS,FOLLOW_I_CALL_SITE_EXTRA_ARGUMENTS_in_call_site_extra_arguments1869);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop33:
while (true) {
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==ARRAY_TYPE_PREFIX||(LA33_0 >= BOOL_LITERAL && LA33_0 <= BYTE_LITERAL)||(LA33_0 >= CHAR_LITERAL && LA33_0 <= CLASS_DESCRIPTOR)||LA33_0==DOUBLE_LITERAL||LA33_0==FLOAT_LITERAL||LA33_0==INTEGER_LITERAL||(LA33_0 >= I_ENCODED_ARRAY && LA33_0 <= I_ENCODED_METHOD_HANDLE)||LA33_0==I_METHOD_PROTOTYPE||LA33_0==I_SUBANNOTATION||LA33_0==LONG_LITERAL||LA33_0==NULL_LITERAL||LA33_0==PRIMITIVE_TYPE||LA33_0==SHORT_LITERAL||LA33_0==STRING_LITERAL||LA33_0==VOID_TYPE) ) {
alt33=1;
}
switch (alt33) {
case 1 :
{
pushFollow(FOLLOW_literal_in_call_site_extra_arguments1872);
literal107=literal();
state._fsp--;
extraArguments.add(literal107);
}
break;
default :
break loop33;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return extraArguments;
}
public final void ordered_method_items() throws RecognitionException {
try {
{
match(input,I_ORDERED_METHOD_ITEMS,FOLLOW_I_ORDERED_METHOD_ITEMS_in_ordered_method_items1888);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop34:
while (true) {
int alt34=4;
switch ( input.LA(1) ) {
case I_LABEL:
{
alt34=1;
}
break;
case I_STATEMENT_ARRAY_DATA:
case I_STATEMENT_FORMAT10t:
case I_STATEMENT_FORMAT10x:
case I_STATEMENT_FORMAT11n:
case I_STATEMENT_FORMAT11x:
case I_STATEMENT_FORMAT12x:
case I_STATEMENT_FORMAT20bc:
case I_STATEMENT_FORMAT20t:
case I_STATEMENT_FORMAT21c_FIELD:
case I_STATEMENT_FORMAT21c_METHOD_HANDLE:
case I_STATEMENT_FORMAT21c_METHOD_TYPE:
case I_STATEMENT_FORMAT21c_STRING:
case I_STATEMENT_FORMAT21c_TYPE:
case I_STATEMENT_FORMAT21ih:
case I_STATEMENT_FORMAT21lh:
case I_STATEMENT_FORMAT21s:
case I_STATEMENT_FORMAT21t:
case I_STATEMENT_FORMAT22b:
case I_STATEMENT_FORMAT22c_FIELD:
case I_STATEMENT_FORMAT22c_TYPE:
case I_STATEMENT_FORMAT22s:
case I_STATEMENT_FORMAT22t:
case I_STATEMENT_FORMAT22x:
case I_STATEMENT_FORMAT23x:
case I_STATEMENT_FORMAT30t:
case I_STATEMENT_FORMAT31c:
case I_STATEMENT_FORMAT31i:
case I_STATEMENT_FORMAT31t:
case I_STATEMENT_FORMAT32x:
case I_STATEMENT_FORMAT35c_CALL_SITE:
case I_STATEMENT_FORMAT35c_METHOD:
case I_STATEMENT_FORMAT35c_TYPE:
case I_STATEMENT_FORMAT3rc_CALL_SITE:
case I_STATEMENT_FORMAT3rc_METHOD:
case I_STATEMENT_FORMAT3rc_TYPE:
case I_STATEMENT_FORMAT45cc_METHOD:
case I_STATEMENT_FORMAT4rcc_METHOD:
case I_STATEMENT_FORMAT51l:
case I_STATEMENT_PACKED_SWITCH:
case I_STATEMENT_SPARSE_SWITCH:
{
alt34=2;
}
break;
case I_END_LOCAL:
case I_EPILOGUE:
case I_LINE:
case I_LOCAL:
case I_PROLOGUE:
case I_RESTART_LOCAL:
case I_SOURCE:
{
alt34=3;
}
break;
}
switch (alt34) {
case 1 :
{
pushFollow(FOLLOW_label_def_in_ordered_method_items1891);
label_def();
state._fsp--;
}
break;
case 2 :
{
pushFollow(FOLLOW_instruction_in_ordered_method_items1895);
instruction();
state._fsp--;
}
break;
case 3 :
{
pushFollow(FOLLOW_debug_directive_in_ordered_method_items1899);
debug_directive();
state._fsp--;
}
break;
default :
break loop34;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final Label label_ref() throws RecognitionException {
Label label = null;
CommonTree SIMPLE_NAME108=null;
try {
{
SIMPLE_NAME108=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_label_ref1915);
label = method_stack.peek().methodBuilder.getLabel((SIMPLE_NAME108!=null?SIMPLE_NAME108.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return label;
}
public static class register_list_return extends TreeRuleReturnScope {
public byte[] registers;
public byte registerCount;
};
public final smaliTreeWalker.register_list_return register_list() throws RecognitionException {
smaliTreeWalker.register_list_return retval = new smaliTreeWalker.register_list_return();
retval.start = input.LT(1);
CommonTree I_REGISTER_LIST109=null;
CommonTree REGISTER110=null;
retval.registers = new byte[5];
retval.registerCount = 0;
try {
{
I_REGISTER_LIST109=(CommonTree)match(input,I_REGISTER_LIST,FOLLOW_I_REGISTER_LIST_in_register_list1940);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop35:
while (true) {
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==REGISTER) ) {
alt35=1;
}
switch (alt35) {
case 1 :
{
REGISTER110=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_list1949);
if (retval.registerCount == 5) {
throw new SemanticException(input, I_REGISTER_LIST109, "A list of registers can only have a maximum of 5 " +
"registers. Use the <op>/range alternate opcode instead.");
}
retval.registers[retval.registerCount++] = parseRegister_nibble((REGISTER110!=null?REGISTER110.getText():null));
}
break;
default :
break loop35;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public static class register_range_return extends TreeRuleReturnScope {
public int startRegister;
public int endRegister;
};
public final smaliTreeWalker.register_range_return register_range() throws RecognitionException {
smaliTreeWalker.register_range_return retval = new smaliTreeWalker.register_range_return();
retval.start = input.LT(1);
CommonTree startReg=null;
CommonTree endReg=null;
CommonTree I_REGISTER_RANGE111=null;
try {
{
I_REGISTER_RANGE111=(CommonTree)match(input,I_REGISTER_RANGE,FOLLOW_I_REGISTER_RANGE_in_register_range1974);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==REGISTER) ) {
alt37=1;
}
switch (alt37) {
case 1 :
{
startReg=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_range1979);
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==REGISTER) ) {
alt36=1;
}
switch (alt36) {
case 1 :
{
endReg=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_range1983);
}
break;
}
}
break;
}
match(input, Token.UP, null);
}
if (startReg == null) {
retval.startRegister = 0;
retval.endRegister = -1;
} else {
retval.startRegister = parseRegister_short((startReg!=null?startReg.getText():null));
if (endReg == null) {
retval.endRegister = retval.startRegister;
} else {
retval.endRegister = parseRegister_short((endReg!=null?endReg.getText():null));
}
int registerCount = retval.endRegister-retval.startRegister+1;
if (registerCount < 1) {
throw new SemanticException(input, I_REGISTER_RANGE111, "A register range must have the lower register listed first");
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public final ImmutableReference verification_error_reference() throws RecognitionException {
ImmutableReference reference = null;
CommonTree CLASS_DESCRIPTOR112=null;
TreeRuleReturnScope field_reference113 =null;
ImmutableMethodReference method_reference114 =null;
try {
int alt38=3;
switch ( input.LA(1) ) {
case CLASS_DESCRIPTOR:
{
int LA38_1 = input.LA(2);
if ( (LA38_1==UP) ) {
alt38=1;
}
else if ( (LA38_1==SIMPLE_NAME) ) {
int LA38_3 = input.LA(3);
if ( (LA38_3==ARRAY_TYPE_PREFIX||LA38_3==CLASS_DESCRIPTOR||LA38_3==PRIMITIVE_TYPE) ) {
alt38=2;
}
else if ( (LA38_3==I_METHOD_PROTOTYPE) ) {
alt38=3;
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 38, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 38, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case ARRAY_TYPE_PREFIX:
{
int LA38_2 = input.LA(2);
if ( (LA38_2==PRIMITIVE_TYPE) ) {
int LA38_5 = input.LA(3);
if ( (LA38_5==SIMPLE_NAME) ) {
int LA38_3 = input.LA(4);
if ( (LA38_3==ARRAY_TYPE_PREFIX||LA38_3==CLASS_DESCRIPTOR||LA38_3==PRIMITIVE_TYPE) ) {
alt38=2;
}
else if ( (LA38_3==I_METHOD_PROTOTYPE) ) {
alt38=3;
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 38, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 38, 5, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA38_2==CLASS_DESCRIPTOR) ) {
int LA38_6 = input.LA(3);
if ( (LA38_6==SIMPLE_NAME) ) {
int LA38_3 = input.LA(4);
if ( (LA38_3==ARRAY_TYPE_PREFIX||LA38_3==CLASS_DESCRIPTOR||LA38_3==PRIMITIVE_TYPE) ) {
alt38=2;
}
else if ( (LA38_3==I_METHOD_PROTOTYPE) ) {
alt38=3;
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 38, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 38, 6, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 38, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case SIMPLE_NAME:
{
int LA38_3 = input.LA(2);
if ( (LA38_3==ARRAY_TYPE_PREFIX||LA38_3==CLASS_DESCRIPTOR||LA38_3==PRIMITIVE_TYPE) ) {
alt38=2;
}
else if ( (LA38_3==I_METHOD_PROTOTYPE) ) {
alt38=3;
}
else {
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 38, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 38, 0, input);
throw nvae;
}
switch (alt38) {
case 1 :
{
CLASS_DESCRIPTOR112=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference2006);
reference = new ImmutableTypeReference((CLASS_DESCRIPTOR112!=null?CLASS_DESCRIPTOR112.getText():null));
}
break;
case 2 :
{
pushFollow(FOLLOW_field_reference_in_verification_error_reference2016);
field_reference113=field_reference();
state._fsp--;
reference = (field_reference113!=null?((smaliTreeWalker.field_reference_return)field_reference113).fieldReference:null);
}
break;
case 3 :
{
pushFollow(FOLLOW_method_reference_in_verification_error_reference2026);
method_reference114=method_reference();
state._fsp--;
reference = method_reference114;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return reference;
}
public final int verification_error_type() throws RecognitionException {
int verificationError = 0;
CommonTree VERIFICATION_ERROR_TYPE115=null;
try {
{
VERIFICATION_ERROR_TYPE115=(CommonTree)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_verification_error_type2043);
verificationError = VerificationError.getVerificationError((VERIFICATION_ERROR_TYPE115!=null?VERIFICATION_ERROR_TYPE115.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return verificationError;
}
public static class instruction_return extends TreeRuleReturnScope {
};
public final smaliTreeWalker.instruction_return instruction() throws RecognitionException {
smaliTreeWalker.instruction_return retval = new smaliTreeWalker.instruction_return();
retval.start = input.LT(1);
try {
int alt39=40;
switch ( input.LA(1) ) {
case I_STATEMENT_FORMAT10t:
{
alt39=1;
}
break;
case I_STATEMENT_FORMAT10x:
{
alt39=2;
}
break;
case I_STATEMENT_FORMAT11n:
{
alt39=3;
}
break;
case I_STATEMENT_FORMAT11x:
{
alt39=4;
}
break;
case I_STATEMENT_FORMAT12x:
{
alt39=5;
}
break;
case I_STATEMENT_FORMAT20bc:
{
alt39=6;
}
break;
case I_STATEMENT_FORMAT20t:
{
alt39=7;
}
break;
case I_STATEMENT_FORMAT21c_FIELD:
{
alt39=8;
}
break;
case I_STATEMENT_FORMAT21c_METHOD_HANDLE:
{
alt39=9;
}
break;
case I_STATEMENT_FORMAT21c_METHOD_TYPE:
{
alt39=10;
}
break;
case I_STATEMENT_FORMAT21c_STRING:
{
alt39=11;
}
break;
case I_STATEMENT_FORMAT21c_TYPE:
{
alt39=12;
}
break;
case I_STATEMENT_FORMAT21ih:
{
alt39=13;
}
break;
case I_STATEMENT_FORMAT21lh:
{
alt39=14;
}
break;
case I_STATEMENT_FORMAT21s:
{
alt39=15;
}
break;
case I_STATEMENT_FORMAT21t:
{
alt39=16;
}
break;
case I_STATEMENT_FORMAT22b:
{
alt39=17;
}
break;
case I_STATEMENT_FORMAT22c_FIELD:
{
alt39=18;
}
break;
case I_STATEMENT_FORMAT22c_TYPE:
{
alt39=19;
}
break;
case I_STATEMENT_FORMAT22s:
{
alt39=20;
}
break;
case I_STATEMENT_FORMAT22t:
{
alt39=21;
}
break;
case I_STATEMENT_FORMAT22x:
{
alt39=22;
}
break;
case I_STATEMENT_FORMAT23x:
{
alt39=23;
}
break;
case I_STATEMENT_FORMAT30t:
{
alt39=24;
}
break;
case I_STATEMENT_FORMAT31c:
{
alt39=25;
}
break;
case I_STATEMENT_FORMAT31i:
{
alt39=26;
}
break;
case I_STATEMENT_FORMAT31t:
{
alt39=27;
}
break;
case I_STATEMENT_FORMAT32x:
{
alt39=28;
}
break;
case I_STATEMENT_FORMAT35c_CALL_SITE:
{
alt39=29;
}
break;
case I_STATEMENT_FORMAT35c_METHOD:
{
alt39=30;
}
break;
case I_STATEMENT_FORMAT35c_TYPE:
{
alt39=31;
}
break;
case I_STATEMENT_FORMAT3rc_CALL_SITE:
{
alt39=32;
}
break;
case I_STATEMENT_FORMAT3rc_METHOD:
{
alt39=33;
}
break;
case I_STATEMENT_FORMAT3rc_TYPE:
{
alt39=34;
}
break;
case I_STATEMENT_FORMAT45cc_METHOD:
{
alt39=35;
}
break;
case I_STATEMENT_FORMAT4rcc_METHOD:
{
alt39=36;
}
break;
case I_STATEMENT_FORMAT51l:
{
alt39=37;
}
break;
case I_STATEMENT_ARRAY_DATA:
{
alt39=38;
}
break;
case I_STATEMENT_PACKED_SWITCH:
{
alt39=39;
}
break;
case I_STATEMENT_SPARSE_SWITCH:
{
alt39=40;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 39, 0, input);
throw nvae;
}
switch (alt39) {
case 1 :
{
pushFollow(FOLLOW_insn_format10t_in_instruction2057);
insn_format10t();
state._fsp--;
}
break;
case 2 :
{
pushFollow(FOLLOW_insn_format10x_in_instruction2063);
insn_format10x();
state._fsp--;
}
break;
case 3 :
{
pushFollow(FOLLOW_insn_format11n_in_instruction2069);
insn_format11n();
state._fsp--;
}
break;
case 4 :
{
pushFollow(FOLLOW_insn_format11x_in_instruction2075);
insn_format11x();
state._fsp--;
}
break;
case 5 :
{
pushFollow(FOLLOW_insn_format12x_in_instruction2081);
insn_format12x();
state._fsp--;
}
break;
case 6 :
{
pushFollow(FOLLOW_insn_format20bc_in_instruction2087);
insn_format20bc();
state._fsp--;
}
break;
case 7 :
{
pushFollow(FOLLOW_insn_format20t_in_instruction2093);
insn_format20t();
state._fsp--;
}
break;
case 8 :
{
pushFollow(FOLLOW_insn_format21c_field_in_instruction2099);
insn_format21c_field();
state._fsp--;
}
break;
case 9 :
{
pushFollow(FOLLOW_insn_format21c_method_handle_in_instruction2105);
insn_format21c_method_handle();
state._fsp--;
}
break;
case 10 :
{
pushFollow(FOLLOW_insn_format21c_method_type_in_instruction2111);
insn_format21c_method_type();
state._fsp--;
}
break;
case 11 :
{
pushFollow(FOLLOW_insn_format21c_string_in_instruction2117);
insn_format21c_string();
state._fsp--;
}
break;
case 12 :
{
pushFollow(FOLLOW_insn_format21c_type_in_instruction2123);
insn_format21c_type();
state._fsp--;
}
break;
case 13 :
{
pushFollow(FOLLOW_insn_format21ih_in_instruction2129);
insn_format21ih();
state._fsp--;
}
break;
case 14 :
{
pushFollow(FOLLOW_insn_format21lh_in_instruction2135);
insn_format21lh();
state._fsp--;
}
break;
case 15 :
{
pushFollow(FOLLOW_insn_format21s_in_instruction2141);
insn_format21s();
state._fsp--;
}
break;
case 16 :
{
pushFollow(FOLLOW_insn_format21t_in_instruction2147);
insn_format21t();
state._fsp--;
}
break;
case 17 :
{
pushFollow(FOLLOW_insn_format22b_in_instruction2153);
insn_format22b();
state._fsp--;
}
break;
case 18 :
{
pushFollow(FOLLOW_insn_format22c_field_in_instruction2159);
insn_format22c_field();
state._fsp--;
}
break;
case 19 :
{
pushFollow(FOLLOW_insn_format22c_type_in_instruction2165);
insn_format22c_type();
state._fsp--;
}
break;
case 20 :
{
pushFollow(FOLLOW_insn_format22s_in_instruction2171);
insn_format22s();
state._fsp--;
}
break;
case 21 :
{
pushFollow(FOLLOW_insn_format22t_in_instruction2177);
insn_format22t();
state._fsp--;
}
break;
case 22 :
{
pushFollow(FOLLOW_insn_format22x_in_instruction2183);
insn_format22x();
state._fsp--;
}
break;
case 23 :
{
pushFollow(FOLLOW_insn_format23x_in_instruction2189);
insn_format23x();
state._fsp--;
}
break;
case 24 :
{
pushFollow(FOLLOW_insn_format30t_in_instruction2195);
insn_format30t();
state._fsp--;
}
break;
case 25 :
{
pushFollow(FOLLOW_insn_format31c_in_instruction2201);
insn_format31c();
state._fsp--;
}
break;
case 26 :
{
pushFollow(FOLLOW_insn_format31i_in_instruction2207);
insn_format31i();
state._fsp--;
}
break;
case 27 :
{
pushFollow(FOLLOW_insn_format31t_in_instruction2213);
insn_format31t();
state._fsp--;
}
break;
case 28 :
{
pushFollow(FOLLOW_insn_format32x_in_instruction2219);
insn_format32x();
state._fsp--;
}
break;
case 29 :
{
pushFollow(FOLLOW_insn_format35c_call_site_in_instruction2225);
insn_format35c_call_site();
state._fsp--;
}
break;
case 30 :
{
pushFollow(FOLLOW_insn_format35c_method_in_instruction2231);
insn_format35c_method();
state._fsp--;
}
break;
case 31 :
{
pushFollow(FOLLOW_insn_format35c_type_in_instruction2237);
insn_format35c_type();
state._fsp--;
}
break;
case 32 :
{
pushFollow(FOLLOW_insn_format3rc_call_site_in_instruction2243);
insn_format3rc_call_site();
state._fsp--;
}
break;
case 33 :
{
pushFollow(FOLLOW_insn_format3rc_method_in_instruction2249);
insn_format3rc_method();
state._fsp--;
}
break;
case 34 :
{
pushFollow(FOLLOW_insn_format3rc_type_in_instruction2255);
insn_format3rc_type();
state._fsp--;
}
break;
case 35 :
{
pushFollow(FOLLOW_insn_format45cc_method_in_instruction2261);
insn_format45cc_method();
state._fsp--;
}
break;
case 36 :
{
pushFollow(FOLLOW_insn_format4rcc_method_in_instruction2267);
insn_format4rcc_method();
state._fsp--;
}
break;
case 37 :
{
pushFollow(FOLLOW_insn_format51l_type_in_instruction2273);
insn_format51l_type();
state._fsp--;
}
break;
case 38 :
{
pushFollow(FOLLOW_insn_array_data_directive_in_instruction2279);
insn_array_data_directive();
state._fsp--;
}
break;
case 39 :
{
pushFollow(FOLLOW_insn_packed_switch_directive_in_instruction2285);
insn_packed_switch_directive();
state._fsp--;
}
break;
case 40 :
{
pushFollow(FOLLOW_insn_sparse_switch_directive_in_instruction2291);
insn_sparse_switch_directive();
state._fsp--;
}
break;
}
}
catch (Exception ex) {
reportError(new SemanticException(input, ((CommonTree)retval.start), ex.getMessage()));
recover(input, null);
}
finally {
}
return retval;
}
public final void insn_format10t() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT10t116=null;
Label label_ref117 =null;
try {
{
match(input,I_STATEMENT_FORMAT10t,FOLLOW_I_STATEMENT_FORMAT10t_in_insn_format10t2315);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT10t116=(CommonTree)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t2317);
pushFollow(FOLLOW_label_ref_in_insn_format10t2319);
label_ref117=label_ref();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT10t116!=null?INSTRUCTION_FORMAT10t116.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction10t(opcode, label_ref117));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format10x() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT10x118=null;
try {
{
match(input,I_STATEMENT_FORMAT10x,FOLLOW_I_STATEMENT_FORMAT10x_in_insn_format10x2342);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT10x118=(CommonTree)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x2344);
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT10x118!=null?INSTRUCTION_FORMAT10x118.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction10x(opcode));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format11n() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT11n119=null;
CommonTree REGISTER120=null;
short short_integral_literal121 =0;
try {
{
match(input,I_STATEMENT_FORMAT11n,FOLLOW_I_STATEMENT_FORMAT11n_in_insn_format11n2367);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT11n119=(CommonTree)match(input,INSTRUCTION_FORMAT11n,FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n2369);
REGISTER120=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11n2371);
pushFollow(FOLLOW_short_integral_literal_in_insn_format11n2373);
short_integral_literal121=short_integral_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT11n119!=null?INSTRUCTION_FORMAT11n119.getText():null));
byte regA = parseRegister_nibble((REGISTER120!=null?REGISTER120.getText():null));
short litB = short_integral_literal121;
LiteralTools.checkNibble(litB);
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction11n(opcode, regA, litB));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format11x() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT11x122=null;
CommonTree REGISTER123=null;
try {
{
match(input,I_STATEMENT_FORMAT11x,FOLLOW_I_STATEMENT_FORMAT11x_in_insn_format11x2396);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT11x122=(CommonTree)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x2398);
REGISTER123=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11x2400);
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT11x122!=null?INSTRUCTION_FORMAT11x122.getText():null));
short regA = parseRegister_byte((REGISTER123!=null?REGISTER123.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction11x(opcode, regA));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format12x() throws RecognitionException {
CommonTree registerA=null;
CommonTree registerB=null;
CommonTree INSTRUCTION_FORMAT12x124=null;
try {
{
match(input,I_STATEMENT_FORMAT12x,FOLLOW_I_STATEMENT_FORMAT12x_in_insn_format12x2423);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT12x124=(CommonTree)match(input,INSTRUCTION_FORMAT12x,FOLLOW_INSTRUCTION_FORMAT12x_in_insn_format12x2425);
registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x2429);
registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x2433);
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT12x124!=null?INSTRUCTION_FORMAT12x124.getText():null));
byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction12x(opcode, regA, regB));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format20bc() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT20bc125=null;
int verification_error_type126 =0;
ImmutableReference verification_error_reference127 =null;
try {
{
match(input,I_STATEMENT_FORMAT20bc,FOLLOW_I_STATEMENT_FORMAT20bc_in_insn_format20bc2456);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT20bc125=(CommonTree)match(input,INSTRUCTION_FORMAT20bc,FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc2458);
pushFollow(FOLLOW_verification_error_type_in_insn_format20bc2460);
verification_error_type126=verification_error_type();
state._fsp--;
pushFollow(FOLLOW_verification_error_reference_in_insn_format20bc2462);
verification_error_reference127=verification_error_reference();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT20bc125!=null?INSTRUCTION_FORMAT20bc125.getText():null));
int verificationError = verification_error_type126;
ImmutableReference referencedItem = verification_error_reference127;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction20bc(opcode, verificationError,
dexBuilder.internReference(referencedItem)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format20t() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT20t128=null;
Label label_ref129 =null;
try {
{
match(input,I_STATEMENT_FORMAT20t,FOLLOW_I_STATEMENT_FORMAT20t_in_insn_format20t2485);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT20t128=(CommonTree)match(input,INSTRUCTION_FORMAT20t,FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t2487);
pushFollow(FOLLOW_label_ref_in_insn_format20t2489);
label_ref129=label_ref();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT20t128!=null?INSTRUCTION_FORMAT20t128.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction20t(opcode, label_ref129));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format21c_field() throws RecognitionException {
CommonTree inst=null;
CommonTree REGISTER130=null;
TreeRuleReturnScope field_reference131 =null;
try {
{
match(input,I_STATEMENT_FORMAT21c_FIELD,FOLLOW_I_STATEMENT_FORMAT21c_FIELD_in_insn_format21c_field2512);
match(input, Token.DOWN, null);
inst=(CommonTree)input.LT(1);
if ( (input.LA(1) >= INSTRUCTION_FORMAT21c_FIELD && input.LA(1) <= INSTRUCTION_FORMAT21c_FIELD_ODEX) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
REGISTER130=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field2524);
pushFollow(FOLLOW_field_reference_in_insn_format21c_field2526);
field_reference131=field_reference();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null));
short regA = parseRegister_byte((REGISTER130!=null?REGISTER130.getText():null));
ImmutableFieldReference fieldReference = (field_reference131!=null?((smaliTreeWalker.field_reference_return)field_reference131).fieldReference:null);
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
dexBuilder.internFieldReference(fieldReference)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format21c_method_handle() throws RecognitionException {
CommonTree inst=null;
CommonTree REGISTER132=null;
ImmutableMethodHandleReference method_handle_reference133 =null;
try {
{
match(input,I_STATEMENT_FORMAT21c_METHOD_HANDLE,FOLLOW_I_STATEMENT_FORMAT21c_METHOD_HANDLE_in_insn_format21c_method_handle2549);
match(input, Token.DOWN, null);
{
inst=(CommonTree)match(input,INSTRUCTION_FORMAT21c_METHOD_HANDLE,FOLLOW_INSTRUCTION_FORMAT21c_METHOD_HANDLE_in_insn_format21c_method_handle2554);
}
REGISTER132=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_method_handle2557);
pushFollow(FOLLOW_method_handle_reference_in_insn_format21c_method_handle2559);
method_handle_reference133=method_handle_reference();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null));
short regA = parseRegister_byte((REGISTER132!=null?REGISTER132.getText():null));
ImmutableMethodHandleReference methodHandleReference = method_handle_reference133;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
dexBuilder.internMethodHandle(methodHandleReference)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format21c_method_type() throws RecognitionException {
CommonTree inst=null;
CommonTree REGISTER134=null;
ImmutableMethodProtoReference method_prototype135 =null;
try {
{
match(input,I_STATEMENT_FORMAT21c_METHOD_TYPE,FOLLOW_I_STATEMENT_FORMAT21c_METHOD_TYPE_in_insn_format21c_method_type2582);
match(input, Token.DOWN, null);
{
inst=(CommonTree)match(input,INSTRUCTION_FORMAT21c_METHOD_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_METHOD_TYPE_in_insn_format21c_method_type2587);
}
REGISTER134=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_method_type2590);
pushFollow(FOLLOW_method_prototype_in_insn_format21c_method_type2592);
method_prototype135=method_prototype();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null));
short regA = parseRegister_byte((REGISTER134!=null?REGISTER134.getText():null));
ImmutableMethodProtoReference methodProtoReference = method_prototype135;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
dexBuilder.internMethodProtoReference(methodProtoReference)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format21c_string() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT21c_STRING136=null;
CommonTree REGISTER137=null;
String string_literal138 =null;
try {
{
match(input,I_STATEMENT_FORMAT21c_STRING,FOLLOW_I_STATEMENT_FORMAT21c_STRING_in_insn_format21c_string2615);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT21c_STRING136=(CommonTree)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string2617);
REGISTER137=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_string2619);
pushFollow(FOLLOW_string_literal_in_insn_format21c_string2621);
string_literal138=string_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_STRING136!=null?INSTRUCTION_FORMAT21c_STRING136.getText():null));
short regA = parseRegister_byte((REGISTER137!=null?REGISTER137.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
dexBuilder.internStringReference(string_literal138)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format21c_type() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT21c_TYPE139=null;
CommonTree REGISTER140=null;
TreeRuleReturnScope nonvoid_type_descriptor141 =null;
try {
{
match(input,I_STATEMENT_FORMAT21c_TYPE,FOLLOW_I_STATEMENT_FORMAT21c_TYPE_in_insn_format21c_type2644);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT21c_TYPE139=(CommonTree)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type2646);
REGISTER140=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_type2648);
pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type2650);
nonvoid_type_descriptor141=nonvoid_type_descriptor();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_TYPE139!=null?INSTRUCTION_FORMAT21c_TYPE139.getText():null));
short regA = parseRegister_byte((REGISTER140!=null?REGISTER140.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
dexBuilder.internTypeReference((nonvoid_type_descriptor141!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor141).type:null))));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format21ih() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT21ih142=null;
CommonTree REGISTER143=null;
int fixed_32bit_literal144 =0;
try {
{
match(input,I_STATEMENT_FORMAT21ih,FOLLOW_I_STATEMENT_FORMAT21ih_in_insn_format21ih2673);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT21ih142=(CommonTree)match(input,INSTRUCTION_FORMAT21ih,FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih2675);
REGISTER143=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21ih2677);
pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21ih2679);
fixed_32bit_literal144=fixed_32bit_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21ih142!=null?INSTRUCTION_FORMAT21ih142.getText():null));
short regA = parseRegister_byte((REGISTER143!=null?REGISTER143.getText():null));
int litB = fixed_32bit_literal144;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21ih(opcode, regA, litB));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format21lh() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT21lh145=null;
CommonTree REGISTER146=null;
long fixed_64bit_literal147 =0;
try {
{
match(input,I_STATEMENT_FORMAT21lh,FOLLOW_I_STATEMENT_FORMAT21lh_in_insn_format21lh2702);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT21lh145=(CommonTree)match(input,INSTRUCTION_FORMAT21lh,FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh2704);
REGISTER146=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21lh2706);
pushFollow(FOLLOW_fixed_64bit_literal_in_insn_format21lh2708);
fixed_64bit_literal147=fixed_64bit_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21lh145!=null?INSTRUCTION_FORMAT21lh145.getText():null));
short regA = parseRegister_byte((REGISTER146!=null?REGISTER146.getText():null));
long litB = fixed_64bit_literal147;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21lh(opcode, regA, litB));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format21s() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT21s148=null;
CommonTree REGISTER149=null;
short short_integral_literal150 =0;
try {
{
match(input,I_STATEMENT_FORMAT21s,FOLLOW_I_STATEMENT_FORMAT21s_in_insn_format21s2731);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT21s148=(CommonTree)match(input,INSTRUCTION_FORMAT21s,FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s2733);
REGISTER149=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21s2735);
pushFollow(FOLLOW_short_integral_literal_in_insn_format21s2737);
short_integral_literal150=short_integral_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21s148!=null?INSTRUCTION_FORMAT21s148.getText():null));
short regA = parseRegister_byte((REGISTER149!=null?REGISTER149.getText():null));
short litB = short_integral_literal150;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21s(opcode, regA, litB));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format21t() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT21t151=null;
CommonTree REGISTER152=null;
Label label_ref153 =null;
try {
{
match(input,I_STATEMENT_FORMAT21t,FOLLOW_I_STATEMENT_FORMAT21t_in_insn_format21t2760);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT21t151=(CommonTree)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t2762);
REGISTER152=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21t2764);
pushFollow(FOLLOW_label_ref_in_insn_format21t2766);
label_ref153=label_ref();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21t151!=null?INSTRUCTION_FORMAT21t151.getText():null));
short regA = parseRegister_byte((REGISTER152!=null?REGISTER152.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21t(opcode, regA, label_ref153));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format22b() throws RecognitionException {
CommonTree registerA=null;
CommonTree registerB=null;
CommonTree INSTRUCTION_FORMAT22b154=null;
short short_integral_literal155 =0;
try {
{
match(input,I_STATEMENT_FORMAT22b,FOLLOW_I_STATEMENT_FORMAT22b_in_insn_format22b2789);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT22b154=(CommonTree)match(input,INSTRUCTION_FORMAT22b,FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b2791);
registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b2795);
registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b2799);
pushFollow(FOLLOW_short_integral_literal_in_insn_format22b2801);
short_integral_literal155=short_integral_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22b154!=null?INSTRUCTION_FORMAT22b154.getText():null));
short regA = parseRegister_byte((registerA!=null?registerA.getText():null));
short regB = parseRegister_byte((registerB!=null?registerB.getText():null));
short litC = short_integral_literal155;
LiteralTools.checkByte(litC);
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22b(opcode, regA, regB, litC));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format22c_field() throws RecognitionException {
CommonTree inst=null;
CommonTree registerA=null;
CommonTree registerB=null;
TreeRuleReturnScope field_reference156 =null;
try {
{
match(input,I_STATEMENT_FORMAT22c_FIELD,FOLLOW_I_STATEMENT_FORMAT22c_FIELD_in_insn_format22c_field2824);
match(input, Token.DOWN, null);
inst=(CommonTree)input.LT(1);
if ( (input.LA(1) >= INSTRUCTION_FORMAT22c_FIELD && input.LA(1) <= INSTRUCTION_FORMAT22c_FIELD_ODEX) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field2838);
registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field2842);
pushFollow(FOLLOW_field_reference_in_insn_format22c_field2844);
field_reference156=field_reference();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null));
byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
ImmutableFieldReference fieldReference = (field_reference156!=null?((smaliTreeWalker.field_reference_return)field_reference156).fieldReference:null);
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22c(opcode, regA, regB,
dexBuilder.internFieldReference(fieldReference)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format22c_type() throws RecognitionException {
CommonTree registerA=null;
CommonTree registerB=null;
CommonTree INSTRUCTION_FORMAT22c_TYPE157=null;
TreeRuleReturnScope nonvoid_type_descriptor158 =null;
try {
{
match(input,I_STATEMENT_FORMAT22c_TYPE,FOLLOW_I_STATEMENT_FORMAT22c_TYPE_in_insn_format22c_type2867);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT22c_TYPE157=(CommonTree)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type2869);
registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type2873);
registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type2877);
pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type2879);
nonvoid_type_descriptor158=nonvoid_type_descriptor();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22c_TYPE157!=null?INSTRUCTION_FORMAT22c_TYPE157.getText():null));
byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22c(opcode, regA, regB,
dexBuilder.internTypeReference((nonvoid_type_descriptor158!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor158).type:null))));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format22s() throws RecognitionException {
CommonTree registerA=null;
CommonTree registerB=null;
CommonTree INSTRUCTION_FORMAT22s159=null;
short short_integral_literal160 =0;
try {
{
match(input,I_STATEMENT_FORMAT22s,FOLLOW_I_STATEMENT_FORMAT22s_in_insn_format22s2902);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT22s159=(CommonTree)match(input,INSTRUCTION_FORMAT22s,FOLLOW_INSTRUCTION_FORMAT22s_in_insn_format22s2904);
registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s2908);
registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s2912);
pushFollow(FOLLOW_short_integral_literal_in_insn_format22s2914);
short_integral_literal160=short_integral_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22s159!=null?INSTRUCTION_FORMAT22s159.getText():null));
byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
short litC = short_integral_literal160;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22s(opcode, regA, regB, litC));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format22t() throws RecognitionException {
CommonTree registerA=null;
CommonTree registerB=null;
CommonTree INSTRUCTION_FORMAT22t161=null;
Label label_ref162 =null;
try {
{
match(input,I_STATEMENT_FORMAT22t,FOLLOW_I_STATEMENT_FORMAT22t_in_insn_format22t2937);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT22t161=(CommonTree)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t2939);
registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t2943);
registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t2947);
pushFollow(FOLLOW_label_ref_in_insn_format22t2949);
label_ref162=label_ref();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22t161!=null?INSTRUCTION_FORMAT22t161.getText():null));
byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22t(opcode, regA, regB, label_ref162));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format22x() throws RecognitionException {
CommonTree registerA=null;
CommonTree registerB=null;
CommonTree INSTRUCTION_FORMAT22x163=null;
try {
{
match(input,I_STATEMENT_FORMAT22x,FOLLOW_I_STATEMENT_FORMAT22x_in_insn_format22x2972);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT22x163=(CommonTree)match(input,INSTRUCTION_FORMAT22x,FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x2974);
registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x2978);
registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x2982);
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22x163!=null?INSTRUCTION_FORMAT22x163.getText():null));
short regA = parseRegister_byte((registerA!=null?registerA.getText():null));
int regB = parseRegister_short((registerB!=null?registerB.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22x(opcode, regA, regB));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format23x() throws RecognitionException {
CommonTree registerA=null;
CommonTree registerB=null;
CommonTree registerC=null;
CommonTree INSTRUCTION_FORMAT23x164=null;
try {
{
match(input,I_STATEMENT_FORMAT23x,FOLLOW_I_STATEMENT_FORMAT23x_in_insn_format23x3005);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT23x164=(CommonTree)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x3007);
registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x3011);
registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x3015);
registerC=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x3019);
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT23x164!=null?INSTRUCTION_FORMAT23x164.getText():null));
short regA = parseRegister_byte((registerA!=null?registerA.getText():null));
short regB = parseRegister_byte((registerB!=null?registerB.getText():null));
short regC = parseRegister_byte((registerC!=null?registerC.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction23x(opcode, regA, regB, regC));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format30t() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT30t165=null;
Label label_ref166 =null;
try {
{
match(input,I_STATEMENT_FORMAT30t,FOLLOW_I_STATEMENT_FORMAT30t_in_insn_format30t3042);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT30t165=(CommonTree)match(input,INSTRUCTION_FORMAT30t,FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t3044);
pushFollow(FOLLOW_label_ref_in_insn_format30t3046);
label_ref166=label_ref();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT30t165!=null?INSTRUCTION_FORMAT30t165.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction30t(opcode, label_ref166));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format31c() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT31c167=null;
CommonTree REGISTER168=null;
String string_literal169 =null;
try {
{
match(input,I_STATEMENT_FORMAT31c,FOLLOW_I_STATEMENT_FORMAT31c_in_insn_format31c3069);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT31c167=(CommonTree)match(input,INSTRUCTION_FORMAT31c,FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c3071);
REGISTER168=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31c3073);
pushFollow(FOLLOW_string_literal_in_insn_format31c3075);
string_literal169=string_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31c167!=null?INSTRUCTION_FORMAT31c167.getText():null));
short regA = parseRegister_byte((REGISTER168!=null?REGISTER168.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31c(opcode, regA,
dexBuilder.internStringReference(string_literal169)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format31i() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT31i170=null;
CommonTree REGISTER171=null;
int fixed_32bit_literal172 =0;
try {
{
match(input,I_STATEMENT_FORMAT31i,FOLLOW_I_STATEMENT_FORMAT31i_in_insn_format31i3098);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT31i170=(CommonTree)match(input,INSTRUCTION_FORMAT31i,FOLLOW_INSTRUCTION_FORMAT31i_in_insn_format31i3100);
REGISTER171=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31i3102);
pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format31i3104);
fixed_32bit_literal172=fixed_32bit_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31i170!=null?INSTRUCTION_FORMAT31i170.getText():null));
short regA = parseRegister_byte((REGISTER171!=null?REGISTER171.getText():null));
int litB = fixed_32bit_literal172;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31i(opcode, regA, litB));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format31t() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT31t173=null;
CommonTree REGISTER174=null;
Label label_ref175 =null;
try {
{
match(input,I_STATEMENT_FORMAT31t,FOLLOW_I_STATEMENT_FORMAT31t_in_insn_format31t3127);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT31t173=(CommonTree)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t3129);
REGISTER174=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31t3131);
pushFollow(FOLLOW_label_ref_in_insn_format31t3133);
label_ref175=label_ref();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31t173!=null?INSTRUCTION_FORMAT31t173.getText():null));
short regA = parseRegister_byte((REGISTER174!=null?REGISTER174.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31t(opcode, regA, label_ref175));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format32x() throws RecognitionException {
CommonTree registerA=null;
CommonTree registerB=null;
CommonTree INSTRUCTION_FORMAT32x176=null;
try {
{
match(input,I_STATEMENT_FORMAT32x,FOLLOW_I_STATEMENT_FORMAT32x_in_insn_format32x3156);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT32x176=(CommonTree)match(input,INSTRUCTION_FORMAT32x,FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x3158);
registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x3162);
registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x3166);
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT32x176!=null?INSTRUCTION_FORMAT32x176.getText():null));
int regA = parseRegister_short((registerA!=null?registerA.getText():null));
int regB = parseRegister_short((registerB!=null?registerB.getText():null));
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction32x(opcode, regA, regB));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format35c_call_site() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT35c_CALL_SITE177=null;
TreeRuleReturnScope register_list178 =null;
ImmutableCallSiteReference call_site_reference179 =null;
try {
{
match(input,I_STATEMENT_FORMAT35c_CALL_SITE,FOLLOW_I_STATEMENT_FORMAT35c_CALL_SITE_in_insn_format35c_call_site3194);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT35c_CALL_SITE177=(CommonTree)match(input,INSTRUCTION_FORMAT35c_CALL_SITE,FOLLOW_INSTRUCTION_FORMAT35c_CALL_SITE_in_insn_format35c_call_site3196);
pushFollow(FOLLOW_register_list_in_insn_format35c_call_site3198);
register_list178=register_list();
state._fsp--;
pushFollow(FOLLOW_call_site_reference_in_insn_format35c_call_site3200);
call_site_reference179=call_site_reference();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT35c_CALL_SITE177!=null?INSTRUCTION_FORMAT35c_CALL_SITE177.getText():null));
byte[] registers = (register_list178!=null?((smaliTreeWalker.register_list_return)register_list178).registers:null);
byte registerCount = (register_list178!=null?((smaliTreeWalker.register_list_return)register_list178).registerCount:0);
ImmutableCallSiteReference callSiteReference = call_site_reference179;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction35c(opcode, registerCount, registers[0],
registers[1], registers[2], registers[3], registers[4], dexBuilder.internCallSite(callSiteReference)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format35c_method() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT35c_METHOD180=null;
TreeRuleReturnScope register_list181 =null;
ImmutableMethodReference method_reference182 =null;
try {
{
match(input,I_STATEMENT_FORMAT35c_METHOD,FOLLOW_I_STATEMENT_FORMAT35c_METHOD_in_insn_format35c_method3223);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT35c_METHOD180=(CommonTree)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method3225);
pushFollow(FOLLOW_register_list_in_insn_format35c_method3227);
register_list181=register_list();
state._fsp--;
pushFollow(FOLLOW_method_reference_in_insn_format35c_method3229);
method_reference182=method_reference();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT35c_METHOD180!=null?INSTRUCTION_FORMAT35c_METHOD180.getText():null));
byte[] registers = (register_list181!=null?((smaliTreeWalker.register_list_return)register_list181).registers:null);
byte registerCount = (register_list181!=null?((smaliTreeWalker.register_list_return)register_list181).registerCount:0);
ImmutableMethodReference methodReference = method_reference182;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction35c(opcode, registerCount, registers[0], registers[1],
registers[2], registers[3], registers[4], dexBuilder.internMethodReference(methodReference)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format35c_type() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT35c_TYPE183=null;
TreeRuleReturnScope register_list184 =null;
TreeRuleReturnScope nonvoid_type_descriptor185 =null;
try {
{
match(input,I_STATEMENT_FORMAT35c_TYPE,FOLLOW_I_STATEMENT_FORMAT35c_TYPE_in_insn_format35c_type3252);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT35c_TYPE183=(CommonTree)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type3254);
pushFollow(FOLLOW_register_list_in_insn_format35c_type3256);
register_list184=register_list();
state._fsp--;
pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type3258);
nonvoid_type_descriptor185=nonvoid_type_descriptor();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT35c_TYPE183!=null?INSTRUCTION_FORMAT35c_TYPE183.getText():null));
byte[] registers = (register_list184!=null?((smaliTreeWalker.register_list_return)register_list184).registers:null);
byte registerCount = (register_list184!=null?((smaliTreeWalker.register_list_return)register_list184).registerCount:0);
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction35c(opcode, registerCount, registers[0], registers[1],
registers[2], registers[3], registers[4], dexBuilder.internTypeReference((nonvoid_type_descriptor185!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor185).type:null))));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format3rc_call_site() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT3rc_CALL_SITE186=null;
TreeRuleReturnScope register_range187 =null;
ImmutableCallSiteReference call_site_reference188 =null;
try {
{
match(input,I_STATEMENT_FORMAT3rc_CALL_SITE,FOLLOW_I_STATEMENT_FORMAT3rc_CALL_SITE_in_insn_format3rc_call_site3286);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT3rc_CALL_SITE186=(CommonTree)match(input,INSTRUCTION_FORMAT3rc_CALL_SITE,FOLLOW_INSTRUCTION_FORMAT3rc_CALL_SITE_in_insn_format3rc_call_site3288);
pushFollow(FOLLOW_register_range_in_insn_format3rc_call_site3290);
register_range187=register_range();
state._fsp--;
pushFollow(FOLLOW_call_site_reference_in_insn_format3rc_call_site3292);
call_site_reference188=call_site_reference();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT3rc_CALL_SITE186!=null?INSTRUCTION_FORMAT3rc_CALL_SITE186.getText():null));
int startRegister = (register_range187!=null?((smaliTreeWalker.register_range_return)register_range187).startRegister:0);
int endRegister = (register_range187!=null?((smaliTreeWalker.register_range_return)register_range187).endRegister:0);
int registerCount = endRegister - startRegister + 1;
ImmutableCallSiteReference callSiteReference = call_site_reference188;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction3rc(opcode, startRegister, registerCount,
dexBuilder.internCallSite(callSiteReference)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format3rc_method() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT3rc_METHOD189=null;
TreeRuleReturnScope register_range190 =null;
ImmutableMethodReference method_reference191 =null;
try {
{
match(input,I_STATEMENT_FORMAT3rc_METHOD,FOLLOW_I_STATEMENT_FORMAT3rc_METHOD_in_insn_format3rc_method3315);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT3rc_METHOD189=(CommonTree)match(input,INSTRUCTION_FORMAT3rc_METHOD,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method3317);
pushFollow(FOLLOW_register_range_in_insn_format3rc_method3319);
register_range190=register_range();
state._fsp--;
pushFollow(FOLLOW_method_reference_in_insn_format3rc_method3321);
method_reference191=method_reference();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT3rc_METHOD189!=null?INSTRUCTION_FORMAT3rc_METHOD189.getText():null));
int startRegister = (register_range190!=null?((smaliTreeWalker.register_range_return)register_range190).startRegister:0);
int endRegister = (register_range190!=null?((smaliTreeWalker.register_range_return)register_range190).endRegister:0);
int registerCount = endRegister-startRegister+1;
ImmutableMethodReference methodReference = method_reference191;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction3rc(opcode, startRegister, registerCount,
dexBuilder.internMethodReference(methodReference)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format3rc_type() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT3rc_TYPE192=null;
TreeRuleReturnScope register_range193 =null;
TreeRuleReturnScope nonvoid_type_descriptor194 =null;
try {
{
match(input,I_STATEMENT_FORMAT3rc_TYPE,FOLLOW_I_STATEMENT_FORMAT3rc_TYPE_in_insn_format3rc_type3344);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT3rc_TYPE192=(CommonTree)match(input,INSTRUCTION_FORMAT3rc_TYPE,FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type3346);
pushFollow(FOLLOW_register_range_in_insn_format3rc_type3348);
register_range193=register_range();
state._fsp--;
pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type3350);
nonvoid_type_descriptor194=nonvoid_type_descriptor();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT3rc_TYPE192!=null?INSTRUCTION_FORMAT3rc_TYPE192.getText():null));
int startRegister = (register_range193!=null?((smaliTreeWalker.register_range_return)register_range193).startRegister:0);
int endRegister = (register_range193!=null?((smaliTreeWalker.register_range_return)register_range193).endRegister:0);
int registerCount = endRegister-startRegister+1;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction3rc(opcode, startRegister, registerCount,
dexBuilder.internTypeReference((nonvoid_type_descriptor194!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor194).type:null))));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format45cc_method() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT45cc_METHOD195=null;
TreeRuleReturnScope register_list196 =null;
ImmutableMethodReference method_reference197 =null;
ImmutableMethodProtoReference method_prototype198 =null;
try {
{
match(input,I_STATEMENT_FORMAT45cc_METHOD,FOLLOW_I_STATEMENT_FORMAT45cc_METHOD_in_insn_format45cc_method3373);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT45cc_METHOD195=(CommonTree)match(input,INSTRUCTION_FORMAT45cc_METHOD,FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method3375);
pushFollow(FOLLOW_register_list_in_insn_format45cc_method3377);
register_list196=register_list();
state._fsp--;
pushFollow(FOLLOW_method_reference_in_insn_format45cc_method3379);
method_reference197=method_reference();
state._fsp--;
pushFollow(FOLLOW_method_prototype_in_insn_format45cc_method3381);
method_prototype198=method_prototype();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT45cc_METHOD195!=null?INSTRUCTION_FORMAT45cc_METHOD195.getText():null));
byte[] registers = (register_list196!=null?((smaliTreeWalker.register_list_return)register_list196).registers:null);
byte registerCount = (register_list196!=null?((smaliTreeWalker.register_list_return)register_list196).registerCount:0);
ImmutableMethodReference methodReference = method_reference197;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction45cc(opcode, registerCount, registers[0], registers[1],
registers[2], registers[3], registers[4],
dexBuilder.internMethodReference(methodReference),
dexBuilder.internMethodProtoReference(method_prototype198)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format4rcc_method() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT4rcc_METHOD199=null;
TreeRuleReturnScope register_range200 =null;
ImmutableMethodReference method_reference201 =null;
ImmutableMethodProtoReference method_prototype202 =null;
try {
{
match(input,I_STATEMENT_FORMAT4rcc_METHOD,FOLLOW_I_STATEMENT_FORMAT4rcc_METHOD_in_insn_format4rcc_method3404);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT4rcc_METHOD199=(CommonTree)match(input,INSTRUCTION_FORMAT4rcc_METHOD,FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method3406);
pushFollow(FOLLOW_register_range_in_insn_format4rcc_method3408);
register_range200=register_range();
state._fsp--;
pushFollow(FOLLOW_method_reference_in_insn_format4rcc_method3410);
method_reference201=method_reference();
state._fsp--;
pushFollow(FOLLOW_method_prototype_in_insn_format4rcc_method3412);
method_prototype202=method_prototype();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT4rcc_METHOD199!=null?INSTRUCTION_FORMAT4rcc_METHOD199.getText():null));
int startRegister = (register_range200!=null?((smaliTreeWalker.register_range_return)register_range200).startRegister:0);
int endRegister = (register_range200!=null?((smaliTreeWalker.register_range_return)register_range200).endRegister:0);
int registerCount = endRegister-startRegister+1;
ImmutableMethodReference methodReference = method_reference201;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction4rcc(opcode, startRegister, registerCount,
dexBuilder.internMethodReference(methodReference),
dexBuilder.internMethodProtoReference(method_prototype202)));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_format51l_type() throws RecognitionException {
CommonTree INSTRUCTION_FORMAT51l203=null;
CommonTree REGISTER204=null;
long fixed_64bit_literal205 =0;
try {
{
match(input,I_STATEMENT_FORMAT51l,FOLLOW_I_STATEMENT_FORMAT51l_in_insn_format51l_type3435);
match(input, Token.DOWN, null);
INSTRUCTION_FORMAT51l203=(CommonTree)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l_type3437);
REGISTER204=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format51l_type3439);
pushFollow(FOLLOW_fixed_64bit_literal_in_insn_format51l_type3441);
fixed_64bit_literal205=fixed_64bit_literal();
state._fsp--;
match(input, Token.UP, null);
Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT51l203!=null?INSTRUCTION_FORMAT51l203.getText():null));
short regA = parseRegister_byte((REGISTER204!=null?REGISTER204.getText():null));
long litB = fixed_64bit_literal205;
method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction51l(opcode, regA, litB));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_array_data_directive() throws RecognitionException {
short short_integral_literal206 =0;
List<Number> array_elements207 =null;
try {
{
match(input,I_STATEMENT_ARRAY_DATA,FOLLOW_I_STATEMENT_ARRAY_DATA_in_insn_array_data_directive3464);
match(input, Token.DOWN, null);
match(input,I_ARRAY_ELEMENT_SIZE,FOLLOW_I_ARRAY_ELEMENT_SIZE_in_insn_array_data_directive3467);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_short_integral_literal_in_insn_array_data_directive3469);
short_integral_literal206=short_integral_literal();
state._fsp--;
match(input, Token.UP, null);
pushFollow(FOLLOW_array_elements_in_insn_array_data_directive3472);
array_elements207=array_elements();
state._fsp--;
match(input, Token.UP, null);
int elementWidth = short_integral_literal206;
List<Number> elements = array_elements207;
method_stack.peek().methodBuilder.addInstruction(new BuilderArrayPayload(elementWidth, array_elements207));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_packed_switch_directive() throws RecognitionException {
int fixed_32bit_literal208 =0;
List<Label> packed_switch_elements209 =null;
try {
{
match(input,I_STATEMENT_PACKED_SWITCH,FOLLOW_I_STATEMENT_PACKED_SWITCH_in_insn_packed_switch_directive3494);
match(input, Token.DOWN, null);
match(input,I_PACKED_SWITCH_START_KEY,FOLLOW_I_PACKED_SWITCH_START_KEY_in_insn_packed_switch_directive3497);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive3499);
fixed_32bit_literal208=fixed_32bit_literal();
state._fsp--;
match(input, Token.UP, null);
pushFollow(FOLLOW_packed_switch_elements_in_insn_packed_switch_directive3502);
packed_switch_elements209=packed_switch_elements();
state._fsp--;
match(input, Token.UP, null);
int startKey = fixed_32bit_literal208;
method_stack.peek().methodBuilder.addInstruction(new BuilderPackedSwitchPayload(startKey,
packed_switch_elements209));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final void insn_sparse_switch_directive() throws RecognitionException {
List<SwitchLabelElement> sparse_switch_elements210 =null;
try {
{
match(input,I_STATEMENT_SPARSE_SWITCH,FOLLOW_I_STATEMENT_SPARSE_SWITCH_in_insn_sparse_switch_directive3526);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_sparse_switch_elements_in_insn_sparse_switch_directive3528);
sparse_switch_elements210=sparse_switch_elements();
state._fsp--;
match(input, Token.UP, null);
method_stack.peek().methodBuilder.addInstruction(new BuilderSparseSwitchPayload(sparse_switch_elements210));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
}
public final String array_descriptor() throws RecognitionException {
String type = null;
CommonTree ARRAY_TYPE_PREFIX211=null;
CommonTree PRIMITIVE_TYPE212=null;
CommonTree CLASS_DESCRIPTOR213=null;
try {
{
ARRAY_TYPE_PREFIX211=(CommonTree)match(input,ARRAY_TYPE_PREFIX,FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor3549);
int alt40=2;
int LA40_0 = input.LA(1);
if ( (LA40_0==PRIMITIVE_TYPE) ) {
alt40=1;
}
else if ( (LA40_0==CLASS_DESCRIPTOR) ) {
alt40=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 40, 0, input);
throw nvae;
}
switch (alt40) {
case 1 :
{
PRIMITIVE_TYPE212=(CommonTree)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_array_descriptor3553);
type = (ARRAY_TYPE_PREFIX211!=null?ARRAY_TYPE_PREFIX211.getText():null) + (PRIMITIVE_TYPE212!=null?PRIMITIVE_TYPE212.getText():null);
}
break;
case 2 :
{
CLASS_DESCRIPTOR213=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_array_descriptor3581);
type = (ARRAY_TYPE_PREFIX211!=null?ARRAY_TYPE_PREFIX211.getText():null) + (CLASS_DESCRIPTOR213!=null?CLASS_DESCRIPTOR213.getText():null);
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return type;
}
public static class nonvoid_type_descriptor_return extends TreeRuleReturnScope {
public String type;
};
public final smaliTreeWalker.nonvoid_type_descriptor_return nonvoid_type_descriptor() throws RecognitionException {
smaliTreeWalker.nonvoid_type_descriptor_return retval = new smaliTreeWalker.nonvoid_type_descriptor_return();
retval.start = input.LT(1);
String array_descriptor214 =null;
try {
{
int alt41=3;
switch ( input.LA(1) ) {
case PRIMITIVE_TYPE:
{
alt41=1;
}
break;
case CLASS_DESCRIPTOR:
{
alt41=2;
}
break;
case ARRAY_TYPE_PREFIX:
{
alt41=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
{
match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor3599);
retval.type = input.getTokenStream().toString(input.getTreeAdaptor().getTokenStartIndex(retval.start),input.getTreeAdaptor().getTokenStopIndex(retval.start));
}
break;
case 2 :
{
match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor3607);
retval.type = input.getTokenStream().toString(input.getTreeAdaptor().getTokenStartIndex(retval.start),input.getTreeAdaptor().getTokenStopIndex(retval.start));
}
break;
case 3 :
{
pushFollow(FOLLOW_array_descriptor_in_nonvoid_type_descriptor3615);
array_descriptor214=array_descriptor();
state._fsp--;
retval.type = array_descriptor214;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public static class reference_type_descriptor_return extends TreeRuleReturnScope {
public String type;
};
public final smaliTreeWalker.reference_type_descriptor_return reference_type_descriptor() throws RecognitionException {
smaliTreeWalker.reference_type_descriptor_return retval = new smaliTreeWalker.reference_type_descriptor_return();
retval.start = input.LT(1);
String array_descriptor215 =null;
try {
{
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==CLASS_DESCRIPTOR) ) {
alt42=1;
}
else if ( (LA42_0==ARRAY_TYPE_PREFIX) ) {
alt42=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 42, 0, input);
throw nvae;
}
switch (alt42) {
case 1 :
{
match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor3636);
retval.type = input.getTokenStream().toString(input.getTreeAdaptor().getTokenStartIndex(retval.start),input.getTreeAdaptor().getTokenStopIndex(retval.start));
}
break;
case 2 :
{
pushFollow(FOLLOW_array_descriptor_in_reference_type_descriptor3644);
array_descriptor215=array_descriptor();
state._fsp--;
retval.type = array_descriptor215;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public final String type_descriptor() throws RecognitionException {
String type = null;
TreeRuleReturnScope nonvoid_type_descriptor216 =null;
try {
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==VOID_TYPE) ) {
alt43=1;
}
else if ( (LA43_0==ARRAY_TYPE_PREFIX||LA43_0==CLASS_DESCRIPTOR||LA43_0==PRIMITIVE_TYPE) ) {
alt43=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 43, 0, input);
throw nvae;
}
switch (alt43) {
case 1 :
{
match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_descriptor3664);
type = "V";
}
break;
case 2 :
{
pushFollow(FOLLOW_nonvoid_type_descriptor_in_type_descriptor3672);
nonvoid_type_descriptor216=nonvoid_type_descriptor();
state._fsp--;
type = (nonvoid_type_descriptor216!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor216).type:null);
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return type;
}
public final short short_integral_literal() throws RecognitionException {
short value = 0;
long long_literal217 =0;
int integer_literal218 =0;
short short_literal219 =0;
char char_literal220 =0;
byte byte_literal221 =0;
try {
int alt44=5;
switch ( input.LA(1) ) {
case LONG_LITERAL:
{
alt44=1;
}
break;
case INTEGER_LITERAL:
{
alt44=2;
}
break;
case SHORT_LITERAL:
{
alt44=3;
}
break;
case CHAR_LITERAL:
{
alt44=4;
}
break;
case BYTE_LITERAL:
{
alt44=5;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
{
pushFollow(FOLLOW_long_literal_in_short_integral_literal3690);
long_literal217=long_literal();
state._fsp--;
LiteralTools.checkShort(long_literal217);
value = (short)long_literal217;
}
break;
case 2 :
{
pushFollow(FOLLOW_integer_literal_in_short_integral_literal3702);
integer_literal218=integer_literal();
state._fsp--;
LiteralTools.checkShort(integer_literal218);
value = (short)integer_literal218;
}
break;
case 3 :
{
pushFollow(FOLLOW_short_literal_in_short_integral_literal3714);
short_literal219=short_literal();
state._fsp--;
value = short_literal219;
}
break;
case 4 :
{
pushFollow(FOLLOW_char_literal_in_short_integral_literal3722);
char_literal220=char_literal();
state._fsp--;
value = (short)char_literal220;
}
break;
case 5 :
{
pushFollow(FOLLOW_byte_literal_in_short_integral_literal3730);
byte_literal221=byte_literal();
state._fsp--;
value = byte_literal221;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final int integral_literal() throws RecognitionException {
int value = 0;
long long_literal222 =0;
int integer_literal223 =0;
short short_literal224 =0;
byte byte_literal225 =0;
try {
int alt45=4;
switch ( input.LA(1) ) {
case LONG_LITERAL:
{
alt45=1;
}
break;
case INTEGER_LITERAL:
{
alt45=2;
}
break;
case SHORT_LITERAL:
{
alt45=3;
}
break;
case BYTE_LITERAL:
{
alt45=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
{
pushFollow(FOLLOW_long_literal_in_integral_literal3745);
long_literal222=long_literal();
state._fsp--;
LiteralTools.checkInt(long_literal222);
value = (int)long_literal222;
}
break;
case 2 :
{
pushFollow(FOLLOW_integer_literal_in_integral_literal3757);
integer_literal223=integer_literal();
state._fsp--;
value = integer_literal223;
}
break;
case 3 :
{
pushFollow(FOLLOW_short_literal_in_integral_literal3765);
short_literal224=short_literal();
state._fsp--;
value = short_literal224;
}
break;
case 4 :
{
pushFollow(FOLLOW_byte_literal_in_integral_literal3773);
byte_literal225=byte_literal();
state._fsp--;
value = byte_literal225;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final int integer_literal() throws RecognitionException {
int value = 0;
CommonTree INTEGER_LITERAL226=null;
try {
{
INTEGER_LITERAL226=(CommonTree)match(input,INTEGER_LITERAL,FOLLOW_INTEGER_LITERAL_in_integer_literal3789);
value = LiteralTools.parseInt((INTEGER_LITERAL226!=null?INTEGER_LITERAL226.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final long long_literal() throws RecognitionException {
long value = 0;
CommonTree LONG_LITERAL227=null;
try {
{
LONG_LITERAL227=(CommonTree)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_long_literal3804);
value = LiteralTools.parseLong((LONG_LITERAL227!=null?LONG_LITERAL227.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final short short_literal() throws RecognitionException {
short value = 0;
CommonTree SHORT_LITERAL228=null;
try {
{
SHORT_LITERAL228=(CommonTree)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_short_literal3819);
value = LiteralTools.parseShort((SHORT_LITERAL228!=null?SHORT_LITERAL228.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final byte byte_literal() throws RecognitionException {
byte value = 0;
CommonTree BYTE_LITERAL229=null;
try {
{
BYTE_LITERAL229=(CommonTree)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_byte_literal3834);
value = LiteralTools.parseByte((BYTE_LITERAL229!=null?BYTE_LITERAL229.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final float float_literal() throws RecognitionException {
float value = 0.0f;
CommonTree FLOAT_LITERAL230=null;
try {
{
FLOAT_LITERAL230=(CommonTree)match(input,FLOAT_LITERAL,FOLLOW_FLOAT_LITERAL_in_float_literal3849);
value = LiteralTools.parseFloat((FLOAT_LITERAL230!=null?FLOAT_LITERAL230.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final double double_literal() throws RecognitionException {
double value = 0.0;
CommonTree DOUBLE_LITERAL231=null;
try {
{
DOUBLE_LITERAL231=(CommonTree)match(input,DOUBLE_LITERAL,FOLLOW_DOUBLE_LITERAL_in_double_literal3864);
value = LiteralTools.parseDouble((DOUBLE_LITERAL231!=null?DOUBLE_LITERAL231.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final char char_literal() throws RecognitionException {
char value = 0;
CommonTree CHAR_LITERAL232=null;
try {
{
CHAR_LITERAL232=(CommonTree)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_char_literal3879);
value = (CHAR_LITERAL232!=null?CHAR_LITERAL232.getText():null).charAt(1);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final String string_literal() throws RecognitionException {
String value = null;
CommonTree STRING_LITERAL233=null;
try {
{
STRING_LITERAL233=(CommonTree)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_string_literal3894);
value = (STRING_LITERAL233!=null?STRING_LITERAL233.getText():null);
value = value.substring(1,value.length()-1);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final boolean bool_literal() throws RecognitionException {
boolean value = false;
CommonTree BOOL_LITERAL234=null;
try {
{
BOOL_LITERAL234=(CommonTree)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_bool_literal3913);
value = Boolean.parseBoolean((BOOL_LITERAL234!=null?BOOL_LITERAL234.getText():null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final List<EncodedValue> array_literal() throws RecognitionException {
List<EncodedValue> elements = null;
ImmutableEncodedValue literal235 =null;
try {
{
elements = Lists.newArrayList();
match(input,I_ENCODED_ARRAY,FOLLOW_I_ENCODED_ARRAY_in_array_literal3935);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop46:
while (true) {
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==ARRAY_TYPE_PREFIX||(LA46_0 >= BOOL_LITERAL && LA46_0 <= BYTE_LITERAL)||(LA46_0 >= CHAR_LITERAL && LA46_0 <= CLASS_DESCRIPTOR)||LA46_0==DOUBLE_LITERAL||LA46_0==FLOAT_LITERAL||LA46_0==INTEGER_LITERAL||(LA46_0 >= I_ENCODED_ARRAY && LA46_0 <= I_ENCODED_METHOD_HANDLE)||LA46_0==I_METHOD_PROTOTYPE||LA46_0==I_SUBANNOTATION||LA46_0==LONG_LITERAL||LA46_0==NULL_LITERAL||LA46_0==PRIMITIVE_TYPE||LA46_0==SHORT_LITERAL||LA46_0==STRING_LITERAL||LA46_0==VOID_TYPE) ) {
alt46=1;
}
switch (alt46) {
case 1 :
{
pushFollow(FOLLOW_literal_in_array_literal3938);
literal235=literal();
state._fsp--;
elements.add(literal235);
}
break;
default :
break loop46;
}
}
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return elements;
}
public final Set<Annotation> annotations() throws RecognitionException {
Set<Annotation> annotations = null;
Annotation annotation236 =null;
try {
{
HashMap<String, Annotation> annotationMap = Maps.newHashMap();
match(input,I_ANNOTATIONS,FOLLOW_I_ANNOTATIONS_in_annotations3963);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
loop47:
while (true) {
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==I_ANNOTATION) ) {
alt47=1;
}
switch (alt47) {
case 1 :
{
pushFollow(FOLLOW_annotation_in_annotations3966);
annotation236=annotation();
state._fsp--;
Annotation anno = annotation236;
Annotation old = annotationMap.put(anno.getType(), anno);
if (old != null) {
throw new SemanticException(input, "Multiple annotations of type %s", anno.getType());
}
}
break;
default :
break loop47;
}
}
match(input, Token.UP, null);
}
annotations = ImmutableSet.copyOf(annotationMap.values());
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return annotations;
}
public final Annotation annotation() throws RecognitionException {
Annotation annotation = null;
CommonTree ANNOTATION_VISIBILITY237=null;
TreeRuleReturnScope subannotation238 =null;
try {
{
match(input,I_ANNOTATION,FOLLOW_I_ANNOTATION_in_annotation3995);
match(input, Token.DOWN, null);
ANNOTATION_VISIBILITY237=(CommonTree)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_annotation3997);
pushFollow(FOLLOW_subannotation_in_annotation3999);
subannotation238=subannotation();
state._fsp--;
match(input, Token.UP, null);
int visibility = AnnotationVisibility.getVisibility((ANNOTATION_VISIBILITY237!=null?ANNOTATION_VISIBILITY237.getText():null));
annotation = new ImmutableAnnotation(visibility, (subannotation238!=null?((smaliTreeWalker.subannotation_return)subannotation238).annotationType:null), (subannotation238!=null?((smaliTreeWalker.subannotation_return)subannotation238).elements:null));
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return annotation;
}
public final AnnotationElement annotation_element() throws RecognitionException {
AnnotationElement element = null;
CommonTree SIMPLE_NAME239=null;
ImmutableEncodedValue literal240 =null;
try {
{
match(input,I_ANNOTATION_ELEMENT,FOLLOW_I_ANNOTATION_ELEMENT_in_annotation_element4020);
match(input, Token.DOWN, null);
SIMPLE_NAME239=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_annotation_element4022);
pushFollow(FOLLOW_literal_in_annotation_element4024);
literal240=literal();
state._fsp--;
match(input, Token.UP, null);
element = new ImmutableAnnotationElement((SIMPLE_NAME239!=null?SIMPLE_NAME239.getText():null), literal240);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return element;
}
public static class subannotation_return extends TreeRuleReturnScope {
public String annotationType;
public List<AnnotationElement> elements;
};
public final smaliTreeWalker.subannotation_return subannotation() throws RecognitionException {
smaliTreeWalker.subannotation_return retval = new smaliTreeWalker.subannotation_return();
retval.start = input.LT(1);
CommonTree CLASS_DESCRIPTOR242=null;
AnnotationElement annotation_element241 =null;
try {
{
ArrayList<AnnotationElement> elements = Lists.newArrayList();
match(input,I_SUBANNOTATION,FOLLOW_I_SUBANNOTATION_in_subannotation4051);
match(input, Token.DOWN, null);
CLASS_DESCRIPTOR242=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_subannotation4061);
loop48:
while (true) {
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==I_ANNOTATION_ELEMENT) ) {
alt48=1;
}
switch (alt48) {
case 1 :
{
pushFollow(FOLLOW_annotation_element_in_subannotation4072);
annotation_element241=annotation_element();
state._fsp--;
elements.add(annotation_element241);
}
break;
default :
break loop48;
}
}
match(input, Token.UP, null);
retval.annotationType = (CLASS_DESCRIPTOR242!=null?CLASS_DESCRIPTOR242.getText():null);
retval.elements = elements;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
public final ImmutableFieldReference field_literal() throws RecognitionException {
ImmutableFieldReference value = null;
TreeRuleReturnScope field_reference243 =null;
try {
{
match(input,I_ENCODED_FIELD,FOLLOW_I_ENCODED_FIELD_in_field_literal4111);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_field_reference_in_field_literal4113);
field_reference243=field_reference();
state._fsp--;
match(input, Token.UP, null);
value = (field_reference243!=null?((smaliTreeWalker.field_reference_return)field_reference243).fieldReference:null);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final ImmutableMethodReference method_literal() throws RecognitionException {
ImmutableMethodReference value = null;
ImmutableMethodReference method_reference244 =null;
try {
{
match(input,I_ENCODED_METHOD,FOLLOW_I_ENCODED_METHOD_in_method_literal4134);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_method_reference_in_method_literal4136);
method_reference244=method_reference();
state._fsp--;
match(input, Token.UP, null);
value = method_reference244;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public final ImmutableFieldReference enum_literal() throws RecognitionException {
ImmutableFieldReference value = null;
TreeRuleReturnScope field_reference245 =null;
try {
{
match(input,I_ENCODED_ENUM,FOLLOW_I_ENCODED_ENUM_in_enum_literal4157);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_field_reference_in_enum_literal4159);
field_reference245=field_reference();
state._fsp--;
match(input, Token.UP, null);
value = (field_reference245!=null?((smaliTreeWalker.field_reference_return)field_reference245).fieldReference:null);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return value;
}
public static final BitSet FOLLOW_I_CLASS_DEF_in_smali_file52 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
public static final BitSet FOLLOW_methods_in_smali_file56 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
public static final BitSet FOLLOW_fields_in_smali_file58 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_annotations_in_smali_file60 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L,0x0100000000002000L});
public static final BitSet = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L,0x0000000000002000L});
public static final BitSet = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
public static final BitSet = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_class_spec110 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
public static final BitSet FOLLOW_access_list_in_class_spec112 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_SUPER_in_super_spec130 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_super_spec132 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_IMPLEMENTS_in_implements_spec152 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_implements_spec154 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_implements_spec_in_implements_list184 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
public static final BitSet FOLLOW_I_SOURCE_in_source_spec213 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_string_literal_in_source_spec215 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_ACCESS_LIST_in_access_list247 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ACCESS_SPEC_in_access_list265 = new BitSet(new long[]{0x0000000000000018L});
public static final BitSet FOLLOW_I_ACCESS_OR_RESTRICTION_LIST_in_access_or_restriction_list308 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ACCESS_SPEC_in_access_or_restriction_list326 = new BitSet(new long[]{0x0000020000000018L});
public static final BitSet FOLLOW_HIDDENAPI_RESTRICTION_in_access_or_restriction_list356 = new BitSet(new long[]{0x0000020000000018L});
public static final BitSet FOLLOW_I_FIELDS_in_fields406 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_field_in_fields415 = new BitSet(new long[]{0x0000000000000008L,0x0020000000000000L});
public static final BitSet FOLLOW_I_METHODS_in_methods447 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_method_in_methods456 = new BitSet(new long[]{0x0000000000000008L,0x4000000000000000L});
public static final BitSet FOLLOW_I_FIELD_in_field481 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_SIMPLE_NAME_in_field483 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_access_or_restriction_list_in_field485 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
public static final BitSet FOLLOW_I_FIELD_TYPE_in_field488 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field490 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_field_initial_value_in_field493 = new BitSet(new long[]{0x0000000000000008L,0x0000001000000000L});
public static final BitSet FOLLOW_annotations_in_field495 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_FIELD_INITIAL_VALUE_in_field_initial_value516 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_literal_in_field_initial_value518 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_integer_literal_in_literal540 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_long_literal_in_literal548 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_short_literal_in_literal556 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_byte_literal_in_literal564 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_float_literal_in_literal572 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_double_literal_in_literal580 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_in_literal588 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_string_literal_in_literal596 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bool_literal_in_literal604 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NULL_LITERAL_in_literal612 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_descriptor_in_literal620 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_array_literal_in_literal628 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subannotation_in_literal636 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_field_literal_in_literal644 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_method_literal_in_literal652 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enum_literal_in_literal660 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_method_handle_literal_in_literal668 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_method_prototype_in_literal676 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_literal_in_fixed_64bit_literal_number692 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_long_literal_in_fixed_64bit_literal_number700 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_short_literal_in_fixed_64bit_literal_number708 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_byte_literal_in_fixed_64bit_literal_number716 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_float_literal_in_fixed_64bit_literal_number724 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_double_literal_in_fixed_64bit_literal_number732 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_in_fixed_64bit_literal_number740 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bool_literal_in_fixed_64bit_literal_number748 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_literal_in_fixed_64bit_literal763 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_long_literal_in_fixed_64bit_literal771 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_short_literal_in_fixed_64bit_literal779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_byte_literal_in_fixed_64bit_literal787 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_float_literal_in_fixed_64bit_literal795 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_double_literal_in_fixed_64bit_literal803 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_in_fixed_64bit_literal811 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bool_literal_in_fixed_64bit_literal819 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_literal_in_fixed_32bit_literal836 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_long_literal_in_fixed_32bit_literal844 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_short_literal_in_fixed_32bit_literal852 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_byte_literal_in_fixed_32bit_literal860 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_float_literal_in_fixed_32bit_literal868 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_in_fixed_32bit_literal876 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_bool_literal_in_fixed_32bit_literal884 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_ARRAY_ELEMENTS_in_array_elements906 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_fixed_64bit_literal_number_in_array_elements915 = new BitSet(new long[]{0x0000008000809808L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_I_PACKED_SWITCH_ELEMENTS_in_packed_switch_elements951 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_label_ref_in_packed_switch_elements960 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_I_SPARSE_SWITCH_ELEMENTS_in_sparse_switch_elements995 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_fixed_32bit_literal_in_sparse_switch_elements1005 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_sparse_switch_elements1007 = new BitSet(new long[]{0x0000008000009808L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_I_METHOD_in_method1059 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_method_name_and_prototype_in_method1067 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_access_or_restriction_list_in_method1075 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L,0x0000000000000204L});
public static final BitSet FOLLOW_registers_directive_in_method1102 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
public static final BitSet FOLLOW_ordered_method_items_in_method1159 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
public static final BitSet FOLLOW_catches_in_method1167 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
public static final BitSet FOLLOW_parameters_in_method1175 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_annotations_in_method1184 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_METHOD_PROTOTYPE_in_method_prototype1208 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_I_METHOD_RETURN_TYPE_in_method_prototype1211 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_type_descriptor_in_method_prototype1213 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_method_type_list_in_method_prototype1216 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_SIMPLE_NAME_in_method_name_and_prototype1234 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_method_prototype_in_method_name_and_prototype1236 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_method_type_list1270 = new BitSet(new long[]{0x0000000000010102L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_I_CALL_SITE_REFERENCE_in_call_site_reference1301 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_SIMPLE_NAME_in_call_site_reference1305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_string_literal_in_call_site_reference1309 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_method_prototype_in_call_site_reference1311 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
public static final BitSet = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_method_reference_in_call_site_reference1323 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_set_in_method_handle_type1343 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_method_handle_type_in_method_handle_reference1368 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_field_reference_in_method_handle_reference1371 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_method_reference_in_method_handle_reference1375 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_ENCODED_METHOD_HANDLE_in_method_handle_literal1392 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_method_handle_reference_in_method_handle_literal1394 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_reference_type_descriptor_in_method_reference1410 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_SIMPLE_NAME_in_method_reference1413 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_method_prototype_in_method_reference1415 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_reference_type_descriptor_in_field_reference1432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_SIMPLE_NAME_in_field_reference1435 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field_reference1437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_REGISTERS_in_registers_directive1463 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_I_LOCALS_in_registers_directive1475 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_short_integral_literal_in_registers_directive1493 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_LABEL_in_label_def1513 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_SIMPLE_NAME_in_label_def1515 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_CATCHES_in_catches1541 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_catch_directive_in_catches1543 = new BitSet(new long[]{0x0000000000000008L,0x00000C0000000000L});
public static final BitSet FOLLOW_catchall_directive_in_catches1546 = new BitSet(new long[]{0x0000000000000008L,0x0000080000000000L});
public static final BitSet FOLLOW_I_CATCH_in_catch_directive1559 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_catch_directive1561 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_catch_directive1565 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_catch_directive1569 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_catch_directive1573 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_CATCHALL_in_catchall_directive1589 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_label_ref_in_catchall_directive1593 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_catchall_directive1597 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_catchall_directive1601 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_PARAMETERS_in_parameters1618 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_parameter_in_parameters1621 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000020L});
public static final BitSet FOLLOW_I_PARAMETER_in_parameter1637 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_REGISTER_in_parameter1639 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L,0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_string_literal_in_parameter1641 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
public static final BitSet FOLLOW_annotations_in_parameter1644 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_line_in_debug_directive1661 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_local_in_debug_directive1667 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_end_local_in_debug_directive1673 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_restart_local_in_debug_directive1679 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_prologue_in_debug_directive1685 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_epilogue_in_debug_directive1691 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_source_in_debug_directive1697 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_LINE_in_line1708 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_integral_literal_in_line1710 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_LOCAL_in_local1728 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_REGISTER_in_local1730 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000080008L});
public static final BitSet FOLLOW_NULL_LITERAL_in_local1734 = new BitSet(new long[]{0x0000000000010108L,0x0000000000000000L,0x0000000000000000L,0x0000000000080400L});
public static final BitSet FOLLOW_string_literal_in_local1740 = new BitSet(new long[]{0x0000000000010108L,0x0000000000000000L,0x0000000000000000L,0x0000000000080400L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_local1743 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_string_literal_in_local1748 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_END_LOCAL_in_end_local1769 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_REGISTER_in_end_local1771 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_RESTART_LOCAL_in_restart_local1789 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_REGISTER_in_restart_local1791 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_PROLOGUE_in_prologue1808 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_EPILOGUE_in_epilogue1824 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_SOURCE_in_source1841 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_string_literal_in_source1843 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet = new BitSet(new long[]{0x0000008000819908L,0x0007C00080000000L,0x2080000000000001L,0x0000000000888408L});
public static final BitSet FOLLOW_I_ORDERED_METHOD_ITEMS_in_ordered_method_items1888 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_label_def_in_ordered_method_items1891 = new BitSet(new long[]{0x0000000000000008L,0x1C18000000000000L,0x007FFFFFFFFFB100L});
public static final BitSet FOLLOW_instruction_in_ordered_method_items1895 = new BitSet(new long[]{0x0000000000000008L,0x1C18000000000000L,0x007FFFFFFFFFB100L});
public static final BitSet FOLLOW_debug_directive_in_ordered_method_items1899 = new BitSet(new long[]{0x0000000000000008L,0x1C18000000000000L,0x007FFFFFFFFFB100L});
public static final BitSet FOLLOW_SIMPLE_NAME_in_label_ref1915 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_REGISTER_LIST_in_register_list1940 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_REGISTER_in_register_list1949 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_I_REGISTER_RANGE_in_register_range1974 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_REGISTER_in_register_range1979 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_register_range1983 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference2006 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_field_reference_in_verification_error_reference2016 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_method_reference_in_verification_error_reference2026 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_verification_error_type2043 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format10t_in_instruction2057 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format10x_in_instruction2063 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format11n_in_instruction2069 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format11x_in_instruction2075 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format12x_in_instruction2081 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format20bc_in_instruction2087 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format20t_in_instruction2093 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format21c_field_in_instruction2099 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format21c_method_handle_in_instruction2105 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format21c_method_type_in_instruction2111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format21c_string_in_instruction2117 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format21c_type_in_instruction2123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format21ih_in_instruction2129 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format21lh_in_instruction2135 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format21s_in_instruction2141 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format21t_in_instruction2147 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format22b_in_instruction2153 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format22c_field_in_instruction2159 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format22c_type_in_instruction2165 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format22s_in_instruction2171 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format22t_in_instruction2177 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format22x_in_instruction2183 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format23x_in_instruction2189 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format30t_in_instruction2195 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format31c_in_instruction2201 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format31i_in_instruction2207 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format31t_in_instruction2213 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format32x_in_instruction2219 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format35c_call_site_in_instruction2225 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format35c_method_in_instruction2231 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format35c_type_in_instruction2237 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format3rc_call_site_in_instruction2243 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format3rc_method_in_instruction2249 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format3rc_type_in_instruction2255 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format45cc_method_in_instruction2261 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format4rcc_method_in_instruction2267 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_format51l_type_in_instruction2273 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_array_data_directive_in_instruction2279 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_packed_switch_directive_in_instruction2285 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_insn_sparse_switch_directive_in_instruction2291 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT10t_in_insn_format10t2315 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t2317 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_insn_format10t2319 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT10x_in_insn_format10x2342 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x2344 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT11n_in_insn_format11n2367 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n2369 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format11n2371 = new BitSet(new long[]{0x0000000000009000L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_short_integral_literal_in_insn_format11n2373 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT11x_in_insn_format11x2396 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x2398 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format11x2400 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT12x_in_insn_format12x2423 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_in_insn_format12x2425 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format12x2429 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format12x2433 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT20bc_in_insn_format20bc2456 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc2458 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000400000L});
public static final BitSet FOLLOW_verification_error_type_in_insn_format20bc2460 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_verification_error_reference_in_insn_format20bc2462 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT20t_in_insn_format20t2485 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t2487 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_insn_format20t2489 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_FIELD_in_insn_format21c_field2512 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_set_in_insn_format21c_field2516 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field2524 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_field_reference_in_insn_format21c_field2526 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_METHOD_HANDLE_in_insn_format21c_method_handle2549 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_METHOD_HANDLE_in_insn_format21c_method_handle2554 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format21c_method_handle2557 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L,0x0000000000000000L,0x0000000000000003L});
public static final BitSet FOLLOW_method_handle_reference_in_insn_format21c_method_handle2559 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_METHOD_TYPE_in_insn_format21c_method_type2582 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_METHOD_TYPE_in_insn_format21c_method_type2587 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format21c_method_type2590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_method_prototype_in_insn_format21c_method_type2592 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_STRING_in_insn_format21c_string2615 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string2617 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format21c_string2619 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_string_literal_in_insn_format21c_string2621 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_TYPE_in_insn_format21c_type2644 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type2646 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format21c_type2648 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type2650 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT21ih_in_insn_format21ih2673 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih2675 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format21ih2677 = new BitSet(new long[]{0x0000008000009800L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21ih2679 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT21lh_in_insn_format21lh2702 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh2704 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format21lh2706 = new BitSet(new long[]{0x0000008000809800L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_fixed_64bit_literal_in_insn_format21lh2708 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT21s_in_insn_format21s2731 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s2733 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format21s2735 = new BitSet(new long[]{0x0000000000009000L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_short_integral_literal_in_insn_format21s2737 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT21t_in_insn_format21t2760 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t2762 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format21t2764 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_insn_format21t2766 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT22b_in_insn_format22b2789 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b2791 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22b2795 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22b2799 = new BitSet(new long[]{0x0000000000009000L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_short_integral_literal_in_insn_format22b2801 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT22c_FIELD_in_insn_format22c_field2824 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_set_in_insn_format22c_field2828 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field2838 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field2842 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_field_reference_in_insn_format22c_field2844 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT22c_TYPE_in_insn_format22c_type2867 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type2869 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type2873 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type2877 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type2879 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT22s_in_insn_format22s2902 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_in_insn_format22s2904 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22s2908 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22s2912 = new BitSet(new long[]{0x0000000000009000L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_short_integral_literal_in_insn_format22s2914 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT22t_in_insn_format22t2937 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t2939 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22t2943 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22t2947 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_insn_format22t2949 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT22x_in_insn_format22x2972 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x2974 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22x2978 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format22x2982 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT23x_in_insn_format23x3005 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x3007 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format23x3011 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format23x3015 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format23x3019 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT30t_in_insn_format30t3042 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t3044 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_insn_format30t3046 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT31c_in_insn_format31c3069 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c3071 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format31c3073 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
public static final BitSet FOLLOW_string_literal_in_insn_format31c3075 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT31i_in_insn_format31i3098 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_in_insn_format31i3100 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format31i3102 = new BitSet(new long[]{0x0000008000009800L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format31i3104 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT31t_in_insn_format31t3127 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t3129 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format31t3131 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_label_ref_in_insn_format31t3133 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT32x_in_insn_format32x3156 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x3158 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format32x3162 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format32x3166 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT35c_CALL_SITE_in_insn_format35c_call_site3194 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_CALL_SITE_in_insn_format35c_call_site3196 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_register_list_in_insn_format35c_call_site3198 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_call_site_reference_in_insn_format35c_call_site3200 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT35c_METHOD_in_insn_format35c_method3223 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method3225 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_register_list_in_insn_format35c_method3227 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_method_reference_in_insn_format35c_method3229 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT35c_TYPE_in_insn_format35c_type3252 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type3254 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_register_list_in_insn_format35c_type3256 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type3258 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT3rc_CALL_SITE_in_insn_format3rc_call_site3286 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_CALL_SITE_in_insn_format3rc_call_site3288 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_register_range_in_insn_format3rc_call_site3290 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
public static final BitSet FOLLOW_call_site_reference_in_insn_format3rc_call_site3292 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT3rc_METHOD_in_insn_format3rc_method3315 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method3317 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_register_range_in_insn_format3rc_method3319 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method3321 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT3rc_TYPE_in_insn_format3rc_type3344 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type3346 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_register_range_in_insn_format3rc_type3348 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type3350 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT45cc_METHOD_in_insn_format45cc_method3373 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method3375 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_register_list_in_insn_format45cc_method3377 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_method_reference_in_insn_format45cc_method3379 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_method_prototype_in_insn_format45cc_method3381 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT4rcc_METHOD_in_insn_format4rcc_method3404 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method3406 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
public static final BitSet FOLLOW_register_range_in_insn_format4rcc_method3408 = new BitSet(new long[]{0x0000000000010100L,0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
public static final BitSet FOLLOW_method_reference_in_insn_format4rcc_method3410 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
public static final BitSet FOLLOW_method_prototype_in_insn_format4rcc_method3412 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_FORMAT51l_in_insn_format51l_type3435 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l_type3437 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
public static final BitSet FOLLOW_REGISTER_in_insn_format51l_type3439 = new BitSet(new long[]{0x0000008000809800L,0x0000000080000000L,0x2000000000000000L,0x0000000000008000L});
public static final BitSet FOLLOW_fixed_64bit_literal_in_insn_format51l_type3441 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_ARRAY_DATA_in_insn_array_data_directive3464 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_I_ARRAY_ELEMENT_SIZE_in_insn_array_data_directive3467 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_short_integral_literal_in_insn_array_data_directive3469 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_array_elements_in_insn_array_data_directive3472 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_PACKED_SWITCH_in_insn_packed_switch_directive3494 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_I_PACKED_SWITCH_START_KEY_in_insn_packed_switch_directive3497 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive3499 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_packed_switch_elements_in_insn_packed_switch_directive3502 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_STATEMENT_SPARSE_SWITCH_in_insn_sparse_switch_directive3526 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_sparse_switch_elements_in_insn_sparse_switch_directive3528 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor3549 = new BitSet(new long[]{0x0000000000010000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_array_descriptor3553 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_array_descriptor3581 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor3599 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor3607 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_array_descriptor_in_nonvoid_type_descriptor3615 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor3636 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_array_descriptor_in_reference_type_descriptor3644 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VOID_TYPE_in_type_descriptor3664 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nonvoid_type_descriptor_in_type_descriptor3672 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_long_literal_in_short_integral_literal3690 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_literal_in_short_integral_literal3702 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_short_literal_in_short_integral_literal3714 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_char_literal_in_short_integral_literal3722 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_byte_literal_in_short_integral_literal3730 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_long_literal_in_integral_literal3745 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_integer_literal_in_integral_literal3757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_short_literal_in_integral_literal3765 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_byte_literal_in_integral_literal3773 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INTEGER_LITERAL_in_integer_literal3789 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LONG_LITERAL_in_long_literal3804 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SHORT_LITERAL_in_short_literal3819 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BYTE_LITERAL_in_byte_literal3834 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOAT_LITERAL_in_float_literal3849 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLE_LITERAL_in_double_literal3864 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CHAR_LITERAL_in_char_literal3879 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_LITERAL_in_string_literal3894 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BOOL_LITERAL_in_bool_literal3913 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_I_ENCODED_ARRAY_in_array_literal3935 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_literal_in_array_literal3938 = new BitSet(new long[]{0x0000008000819908L,0x0007C00080000000L,0x2080000000000001L,0x0000000000888408L});
public static final BitSet FOLLOW_I_ANNOTATIONS_in_annotations3963 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_annotation_in_annotations3966 = new BitSet(new long[]{0x0000000000000008L,0x0000000800000000L});
public static final BitSet FOLLOW_I_ANNOTATION_in_annotation3995 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_annotation3997 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0080000000000000L});
public static final BitSet FOLLOW_subannotation_in_annotation3999 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_ANNOTATION_ELEMENT_in_annotation_element4020 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_SIMPLE_NAME_in_annotation_element4022 = new BitSet(new long[]{0x0000008000819900L,0x0007C00080000000L,0x2080000000000001L,0x0000000000888408L});
public static final BitSet FOLLOW_literal_in_annotation_element4024 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_SUBANNOTATION_in_subannotation4051 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_subannotation4061 = new BitSet(new long[]{0x0000000000000008L,0x0000002000000000L});
public static final BitSet FOLLOW_annotation_element_in_subannotation4072 = new BitSet(new long[]{0x0000000000000008L,0x0000002000000000L});
public static final BitSet FOLLOW_I_ENCODED_FIELD_in_field_literal4111 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_field_reference_in_field_literal4113 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_ENCODED_METHOD_in_method_literal4134 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_method_reference_in_method_literal4136 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_I_ENCODED_ENUM_in_enum_literal4157 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_field_reference_in_enum_literal4159 = new BitSet(new long[]{0x0000000000000008L});
}