1 // $ANTLR 3.5 /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g 2015-02-19 13:37:39 2 3 package org.jf.smali; 4 5 import com.google.common.collect.ImmutableSet; 6 import com.google.common.collect.Iterables; 7 import com.google.common.collect.Lists; 8 import com.google.common.collect.Maps; 9 import org.antlr.runtime.BitSet; 10 import org.antlr.runtime.*; 11 import org.antlr.runtime.tree.CommonTree; 12 import org.antlr.runtime.tree.TreeNodeStream; 13 import org.antlr.runtime.tree.TreeParser; 14 import org.antlr.runtime.tree.TreeRuleReturnScope; 15 import org.jf.dexlib2.*; 16 import org.jf.dexlib2.builder.Label; 17 import org.jf.dexlib2.builder.MethodImplementationBuilder; 18 import org.jf.dexlib2.builder.SwitchLabelElement; 19 import org.jf.dexlib2.builder.instruction.*; 20 import org.jf.dexlib2.iface.Annotation; 21 import org.jf.dexlib2.iface.AnnotationElement; 22 import org.jf.dexlib2.iface.ClassDef; 23 import org.jf.dexlib2.iface.MethodImplementation; 24 import org.jf.dexlib2.iface.reference.FieldReference; 25 import org.jf.dexlib2.iface.reference.MethodReference; 26 import org.jf.dexlib2.iface.value.EncodedValue; 27 import org.jf.dexlib2.immutable.ImmutableAnnotation; 28 import org.jf.dexlib2.immutable.ImmutableAnnotationElement; 29 import org.jf.dexlib2.immutable.reference.ImmutableFieldReference; 30 import org.jf.dexlib2.immutable.reference.ImmutableMethodReference; 31 import org.jf.dexlib2.immutable.reference.ImmutableReference; 32 import org.jf.dexlib2.immutable.reference.ImmutableTypeReference; 33 import org.jf.dexlib2.immutable.value.*; 34 import org.jf.dexlib2.util.MethodUtil; 35 import org.jf.dexlib2.writer.InstructionFactory; 36 import org.jf.dexlib2.writer.builder.*; 37 import org.jf.util.LinearSearch; 38 39 import java.util.*; 40 41 42 import org.antlr.runtime.*; 43 import org.antlr.runtime.tree.*; 44 import java.util.Stack; 45 import java.util.List; 46 import java.util.ArrayList; 47 48 @SuppressWarnings("all") 49 public class smaliTreeWalker extends TreeParser { 50 public static final String[] tokenNames = new String[] { 51 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACCESS_SPEC", "ANNOTATION_DIRECTIVE", 52 "ANNOTATION_VISIBILITY", "ARRAY_DATA_DIRECTIVE", "ARRAY_DESCRIPTOR", "ARROW", 53 "BOOL_LITERAL", "BYTE_LITERAL", "CATCHALL_DIRECTIVE", "CATCH_DIRECTIVE", 54 "CHAR_LITERAL", "CLASS_DESCRIPTOR", "CLASS_DIRECTIVE", "CLOSE_BRACE", 55 "CLOSE_PAREN", "COLON", "COMMA", "DOTDOT", "DOUBLE_LITERAL", "DOUBLE_LITERAL_OR_ID", 56 "END_ANNOTATION_DIRECTIVE", "END_ARRAY_DATA_DIRECTIVE", "END_FIELD_DIRECTIVE", 57 "END_LOCAL_DIRECTIVE", "END_METHOD_DIRECTIVE", "END_PACKED_SWITCH_DIRECTIVE", 58 "END_PARAMETER_DIRECTIVE", "END_SPARSE_SWITCH_DIRECTIVE", "END_SUBANNOTATION_DIRECTIVE", 59 "ENUM_DIRECTIVE", "EPILOGUE_DIRECTIVE", "EQUAL", "FIELD_DIRECTIVE", "FIELD_OFFSET", 60 "FLOAT_LITERAL", "FLOAT_LITERAL_OR_ID", "IMPLEMENTS_DIRECTIVE", "INLINE_INDEX", 61 "INSTRUCTION_FORMAT10t", "INSTRUCTION_FORMAT10x", "INSTRUCTION_FORMAT10x_ODEX", 62 "INSTRUCTION_FORMAT11n", "INSTRUCTION_FORMAT11x", "INSTRUCTION_FORMAT12x", 63 "INSTRUCTION_FORMAT12x_OR_ID", "INSTRUCTION_FORMAT20bc", "INSTRUCTION_FORMAT20t", 64 "INSTRUCTION_FORMAT21c_FIELD", "INSTRUCTION_FORMAT21c_FIELD_ODEX", "INSTRUCTION_FORMAT21c_STRING", 65 "INSTRUCTION_FORMAT21c_TYPE", "INSTRUCTION_FORMAT21ih", "INSTRUCTION_FORMAT21lh", 66 "INSTRUCTION_FORMAT21s", "INSTRUCTION_FORMAT21t", "INSTRUCTION_FORMAT22b", 67 "INSTRUCTION_FORMAT22c_FIELD", "INSTRUCTION_FORMAT22c_FIELD_ODEX", "INSTRUCTION_FORMAT22c_TYPE", 68 "INSTRUCTION_FORMAT22cs_FIELD", "INSTRUCTION_FORMAT22s", "INSTRUCTION_FORMAT22s_OR_ID", 69 "INSTRUCTION_FORMAT22t", "INSTRUCTION_FORMAT22x", "INSTRUCTION_FORMAT23x", 70 "INSTRUCTION_FORMAT30t", "INSTRUCTION_FORMAT31c", "INSTRUCTION_FORMAT31i", 71 "INSTRUCTION_FORMAT31i_OR_ID", "INSTRUCTION_FORMAT31t", "INSTRUCTION_FORMAT32x", 72 "INSTRUCTION_FORMAT35c_METHOD", "INSTRUCTION_FORMAT35c_METHOD_ODEX", "INSTRUCTION_FORMAT35c_TYPE", 73 "INSTRUCTION_FORMAT35mi_METHOD", "INSTRUCTION_FORMAT35ms_METHOD", "INSTRUCTION_FORMAT3rc_METHOD", 74 "INSTRUCTION_FORMAT3rc_METHOD_ODEX", "INSTRUCTION_FORMAT3rc_TYPE", "INSTRUCTION_FORMAT3rmi_METHOD", 75 "INSTRUCTION_FORMAT3rms_METHOD", "INSTRUCTION_FORMAT51l", "INTEGER_LITERAL", 76 "INVALID_TOKEN", "I_ACCESS_LIST", "I_ANNOTATION", "I_ANNOTATIONS", "I_ANNOTATION_ELEMENT", 77 "I_ARRAY_ELEMENTS", "I_ARRAY_ELEMENT_SIZE", "I_CATCH", "I_CATCHALL", "I_CATCHES", 78 "I_CLASS_DEF", "I_ENCODED_ARRAY", "I_ENCODED_ENUM", "I_ENCODED_FIELD", 79 "I_ENCODED_METHOD", "I_END_LOCAL", "I_EPILOGUE", "I_FIELD", "I_FIELDS", 80 "I_FIELD_INITIAL_VALUE", "I_FIELD_TYPE", "I_IMPLEMENTS", "I_LABEL", "I_LINE", 81 "I_LOCAL", "I_LOCALS", "I_METHOD", "I_METHODS", "I_METHOD_PROTOTYPE", 82 "I_METHOD_RETURN_TYPE", "I_ORDERED_METHOD_ITEMS", "I_PACKED_SWITCH_ELEMENTS", 83 "I_PACKED_SWITCH_START_KEY", "I_PARAMETER", "I_PARAMETERS", "I_PARAMETER_NOT_SPECIFIED", 84 "I_PROLOGUE", "I_REGISTERS", "I_REGISTER_LIST", "I_REGISTER_RANGE", "I_RESTART_LOCAL", 85 "I_SOURCE", "I_SPARSE_SWITCH_ELEMENTS", "I_STATEMENT_ARRAY_DATA", "I_STATEMENT_FORMAT10t", 86 "I_STATEMENT_FORMAT10x", "I_STATEMENT_FORMAT11n", "I_STATEMENT_FORMAT11x", 87 "I_STATEMENT_FORMAT12x", "I_STATEMENT_FORMAT20bc", "I_STATEMENT_FORMAT20t", 88 "I_STATEMENT_FORMAT21c_FIELD", "I_STATEMENT_FORMAT21c_STRING", "I_STATEMENT_FORMAT21c_TYPE", 89 "I_STATEMENT_FORMAT21ih", "I_STATEMENT_FORMAT21lh", "I_STATEMENT_FORMAT21s", 90 "I_STATEMENT_FORMAT21t", "I_STATEMENT_FORMAT22b", "I_STATEMENT_FORMAT22c_FIELD", 91 "I_STATEMENT_FORMAT22c_TYPE", "I_STATEMENT_FORMAT22s", "I_STATEMENT_FORMAT22t", 92 "I_STATEMENT_FORMAT22x", "I_STATEMENT_FORMAT23x", "I_STATEMENT_FORMAT30t", 93 "I_STATEMENT_FORMAT31c", "I_STATEMENT_FORMAT31i", "I_STATEMENT_FORMAT31t", 94 "I_STATEMENT_FORMAT32x", "I_STATEMENT_FORMAT35c_METHOD", "I_STATEMENT_FORMAT35c_TYPE", 95 "I_STATEMENT_FORMAT3rc_METHOD", "I_STATEMENT_FORMAT3rc_TYPE", "I_STATEMENT_FORMAT51l", 96 "I_STATEMENT_PACKED_SWITCH", "I_STATEMENT_SPARSE_SWITCH", "I_SUBANNOTATION", 97 "I_SUPER", "LINE_COMMENT", "LINE_DIRECTIVE", "LOCALS_DIRECTIVE", "LOCAL_DIRECTIVE", 98 "LONG_LITERAL", "MEMBER_NAME", "METHOD_DIRECTIVE", "NEGATIVE_INTEGER_LITERAL", 99 "NULL_LITERAL", "OPEN_BRACE", "OPEN_PAREN", "PACKED_SWITCH_DIRECTIVE", 100 "PARAMETER_DIRECTIVE", "PARAM_LIST_END", "PARAM_LIST_OR_ID_END", "PARAM_LIST_OR_ID_START", 101 "PARAM_LIST_START", "POSITIVE_INTEGER_LITERAL", "PRIMITIVE_TYPE", "PROLOGUE_DIRECTIVE", 102 "REGISTER", "REGISTERS_DIRECTIVE", "RESTART_LOCAL_DIRECTIVE", "SHORT_LITERAL", 103 "SIMPLE_NAME", "SOURCE_DIRECTIVE", "SPARSE_SWITCH_DIRECTIVE", "STRING_LITERAL", 104 "SUBANNOTATION_DIRECTIVE", "SUPER_DIRECTIVE", "VERIFICATION_ERROR_TYPE", 105 "VOID_TYPE", "VTABLE_INDEX", "WHITE_SPACE" 106 }; 107 public static final int EOF=-1; 108 public static final int ACCESS_SPEC=4; 109 public static final int ANNOTATION_DIRECTIVE=5; 110 public static final int ANNOTATION_VISIBILITY=6; 111 public static final int ARRAY_DATA_DIRECTIVE=7; 112 public static final int ARRAY_DESCRIPTOR=8; 113 public static final int ARROW=9; 114 public static final int BOOL_LITERAL=10; 115 public static final int BYTE_LITERAL=11; 116 public static final int CATCHALL_DIRECTIVE=12; 117 public static final int CATCH_DIRECTIVE=13; 118 public static final int CHAR_LITERAL=14; 119 public static final int CLASS_DESCRIPTOR=15; 120 public static final int CLASS_DIRECTIVE=16; 121 public static final int CLOSE_BRACE=17; 122 public static final int CLOSE_PAREN=18; 123 public static final int COLON=19; 124 public static final int COMMA=20; 125 public static final int DOTDOT=21; 126 public static final int DOUBLE_LITERAL=22; 127 public static final int DOUBLE_LITERAL_OR_ID=23; 128 public static final int END_ANNOTATION_DIRECTIVE=24; 129 public static final int END_ARRAY_DATA_DIRECTIVE=25; 130 public static final int END_FIELD_DIRECTIVE=26; 131 public static final int END_LOCAL_DIRECTIVE=27; 132 public static final int END_METHOD_DIRECTIVE=28; 133 public static final int END_PACKED_SWITCH_DIRECTIVE=29; 134 public static final int END_PARAMETER_DIRECTIVE=30; 135 public static final int END_SPARSE_SWITCH_DIRECTIVE=31; 136 public static final int END_SUBANNOTATION_DIRECTIVE=32; 137 public static final int ENUM_DIRECTIVE=33; 138 public static final int EPILOGUE_DIRECTIVE=34; 139 public static final int EQUAL=35; 140 public static final int FIELD_DIRECTIVE=36; 141 public static final int FIELD_OFFSET=37; 142 public static final int FLOAT_LITERAL=38; 143 public static final int FLOAT_LITERAL_OR_ID=39; 144 public static final int IMPLEMENTS_DIRECTIVE=40; 145 public static final int INLINE_INDEX=41; 146 public static final int INSTRUCTION_FORMAT10t=42; 147 public static final int INSTRUCTION_FORMAT10x=43; 148 public static final int INSTRUCTION_FORMAT10x_ODEX=44; 149 public static final int INSTRUCTION_FORMAT11n=45; 150 public static final int INSTRUCTION_FORMAT11x=46; 151 public static final int INSTRUCTION_FORMAT12x=47; 152 public static final int INSTRUCTION_FORMAT12x_OR_ID=48; 153 public static final int INSTRUCTION_FORMAT20bc=49; 154 public static final int INSTRUCTION_FORMAT20t=50; 155 public static final int INSTRUCTION_FORMAT21c_FIELD=51; 156 public static final int INSTRUCTION_FORMAT21c_FIELD_ODEX=52; 157 public static final int INSTRUCTION_FORMAT21c_STRING=53; 158 public static final int INSTRUCTION_FORMAT21c_TYPE=54; 159 public static final int INSTRUCTION_FORMAT21ih=55; 160 public static final int INSTRUCTION_FORMAT21lh=56; 161 public static final int INSTRUCTION_FORMAT21s=57; 162 public static final int INSTRUCTION_FORMAT21t=58; 163 public static final int INSTRUCTION_FORMAT22b=59; 164 public static final int INSTRUCTION_FORMAT22c_FIELD=60; 165 public static final int INSTRUCTION_FORMAT22c_FIELD_ODEX=61; 166 public static final int INSTRUCTION_FORMAT22c_TYPE=62; 167 public static final int INSTRUCTION_FORMAT22cs_FIELD=63; 168 public static final int INSTRUCTION_FORMAT22s=64; 169 public static final int INSTRUCTION_FORMAT22s_OR_ID=65; 170 public static final int INSTRUCTION_FORMAT22t=66; 171 public static final int INSTRUCTION_FORMAT22x=67; 172 public static final int INSTRUCTION_FORMAT23x=68; 173 public static final int INSTRUCTION_FORMAT30t=69; 174 public static final int INSTRUCTION_FORMAT31c=70; 175 public static final int INSTRUCTION_FORMAT31i=71; 176 public static final int INSTRUCTION_FORMAT31i_OR_ID=72; 177 public static final int INSTRUCTION_FORMAT31t=73; 178 public static final int INSTRUCTION_FORMAT32x=74; 179 public static final int INSTRUCTION_FORMAT35c_METHOD=75; 180 public static final int INSTRUCTION_FORMAT35c_METHOD_ODEX=76; 181 public static final int INSTRUCTION_FORMAT35c_TYPE=77; 182 public static final int INSTRUCTION_FORMAT35mi_METHOD=78; 183 public static final int INSTRUCTION_FORMAT35ms_METHOD=79; 184 public static final int INSTRUCTION_FORMAT3rc_METHOD=80; 185 public static final int INSTRUCTION_FORMAT3rc_METHOD_ODEX=81; 186 public static final int INSTRUCTION_FORMAT3rc_TYPE=82; 187 public static final int INSTRUCTION_FORMAT3rmi_METHOD=83; 188 public static final int INSTRUCTION_FORMAT3rms_METHOD=84; 189 public static final int INSTRUCTION_FORMAT51l=85; 190 public static final int INTEGER_LITERAL=86; 191 public static final int INVALID_TOKEN=87; 192 public static final int I_ACCESS_LIST=88; 193 public static final int I_ANNOTATION=89; 194 public static final int I_ANNOTATIONS=90; 195 public static final int I_ANNOTATION_ELEMENT=91; 196 public static final int I_ARRAY_ELEMENTS=92; 197 public static final int I_ARRAY_ELEMENT_SIZE=93; 198 public static final int I_CATCH=94; 199 public static final int I_CATCHALL=95; 200 public static final int I_CATCHES=96; 201 public static final int I_CLASS_DEF=97; 202 public static final int I_ENCODED_ARRAY=98; 203 public static final int I_ENCODED_ENUM=99; 204 public static final int I_ENCODED_FIELD=100; 205 public static final int I_ENCODED_METHOD=101; 206 public static final int I_END_LOCAL=102; 207 public static final int I_EPILOGUE=103; 208 public static final int I_FIELD=104; 209 public static final int I_FIELDS=105; 210 public static final int I_FIELD_INITIAL_VALUE=106; 211 public static final int I_FIELD_TYPE=107; 212 public static final int I_IMPLEMENTS=108; 213 public static final int I_LABEL=109; 214 public static final int I_LINE=110; 215 public static final int I_LOCAL=111; 216 public static final int I_LOCALS=112; 217 public static final int I_METHOD=113; 218 public static final int I_METHODS=114; 219 public static final int I_METHOD_PROTOTYPE=115; 220 public static final int I_METHOD_RETURN_TYPE=116; 221 public static final int I_ORDERED_METHOD_ITEMS=117; 222 public static final int I_PACKED_SWITCH_ELEMENTS=118; 223 public static final int I_PACKED_SWITCH_START_KEY=119; 224 public static final int I_PARAMETER=120; 225 public static final int I_PARAMETERS=121; 226 public static final int I_PARAMETER_NOT_SPECIFIED=122; 227 public static final int I_PROLOGUE=123; 228 public static final int I_REGISTERS=124; 229 public static final int I_REGISTER_LIST=125; 230 public static final int I_REGISTER_RANGE=126; 231 public static final int I_RESTART_LOCAL=127; 232 public static final int I_SOURCE=128; 233 public static final int I_SPARSE_SWITCH_ELEMENTS=129; 234 public static final int I_STATEMENT_ARRAY_DATA=130; 235 public static final int I_STATEMENT_FORMAT10t=131; 236 public static final int I_STATEMENT_FORMAT10x=132; 237 public static final int I_STATEMENT_FORMAT11n=133; 238 public static final int I_STATEMENT_FORMAT11x=134; 239 public static final int I_STATEMENT_FORMAT12x=135; 240 public static final int I_STATEMENT_FORMAT20bc=136; 241 public static final int I_STATEMENT_FORMAT20t=137; 242 public static final int I_STATEMENT_FORMAT21c_FIELD=138; 243 public static final int I_STATEMENT_FORMAT21c_STRING=139; 244 public static final int I_STATEMENT_FORMAT21c_TYPE=140; 245 public static final int I_STATEMENT_FORMAT21ih=141; 246 public static final int I_STATEMENT_FORMAT21lh=142; 247 public static final int I_STATEMENT_FORMAT21s=143; 248 public static final int I_STATEMENT_FORMAT21t=144; 249 public static final int I_STATEMENT_FORMAT22b=145; 250 public static final int I_STATEMENT_FORMAT22c_FIELD=146; 251 public static final int I_STATEMENT_FORMAT22c_TYPE=147; 252 public static final int I_STATEMENT_FORMAT22s=148; 253 public static final int I_STATEMENT_FORMAT22t=149; 254 public static final int I_STATEMENT_FORMAT22x=150; 255 public static final int I_STATEMENT_FORMAT23x=151; 256 public static final int I_STATEMENT_FORMAT30t=152; 257 public static final int I_STATEMENT_FORMAT31c=153; 258 public static final int I_STATEMENT_FORMAT31i=154; 259 public static final int I_STATEMENT_FORMAT31t=155; 260 public static final int I_STATEMENT_FORMAT32x=156; 261 public static final int I_STATEMENT_FORMAT35c_METHOD=157; 262 public static final int I_STATEMENT_FORMAT35c_TYPE=158; 263 public static final int I_STATEMENT_FORMAT3rc_METHOD=159; 264 public static final int I_STATEMENT_FORMAT3rc_TYPE=160; 265 public static final int I_STATEMENT_FORMAT51l=161; 266 public static final int I_STATEMENT_PACKED_SWITCH=162; 267 public static final int I_STATEMENT_SPARSE_SWITCH=163; 268 public static final int I_SUBANNOTATION=164; 269 public static final int I_SUPER=165; 270 public static final int LINE_COMMENT=166; 271 public static final int LINE_DIRECTIVE=167; 272 public static final int LOCALS_DIRECTIVE=168; 273 public static final int LOCAL_DIRECTIVE=169; 274 public static final int LONG_LITERAL=170; 275 public static final int MEMBER_NAME=171; 276 public static final int METHOD_DIRECTIVE=172; 277 public static final int NEGATIVE_INTEGER_LITERAL=173; 278 public static final int NULL_LITERAL=174; 279 public static final int OPEN_BRACE=175; 280 public static final int OPEN_PAREN=176; 281 public static final int PACKED_SWITCH_DIRECTIVE=177; 282 public static final int PARAMETER_DIRECTIVE=178; 283 public static final int PARAM_LIST_END=179; 284 public static final int PARAM_LIST_OR_ID_END=180; 285 public static final int PARAM_LIST_OR_ID_START=181; 286 public static final int PARAM_LIST_START=182; 287 public static final int POSITIVE_INTEGER_LITERAL=183; 288 public static final int PRIMITIVE_TYPE=184; 289 public static final int PROLOGUE_DIRECTIVE=185; 290 public static final int REGISTER=186; 291 public static final int REGISTERS_DIRECTIVE=187; 292 public static final int RESTART_LOCAL_DIRECTIVE=188; 293 public static final int SHORT_LITERAL=189; 294 public static final int SIMPLE_NAME=190; 295 public static final int SOURCE_DIRECTIVE=191; 296 public static final int SPARSE_SWITCH_DIRECTIVE=192; 297 public static final int STRING_LITERAL=193; 298 public static final int SUBANNOTATION_DIRECTIVE=194; 299 public static final int SUPER_DIRECTIVE=195; 300 public static final int VERIFICATION_ERROR_TYPE=196; 301 public static final int VOID_TYPE=197; 302 public static final int VTABLE_INDEX=198; 303 public static final int WHITE_SPACE=199; 304 305 // delegates getDelegates()306 public TreeParser[] getDelegates() { 307 return new TreeParser[] {}; 308 } 309 310 // delegators 311 312 smaliTreeWalker(TreeNodeStream input)313 public smaliTreeWalker(TreeNodeStream input) { 314 this(input, new RecognizerSharedState()); 315 } smaliTreeWalker(TreeNodeStream input, RecognizerSharedState state)316 public smaliTreeWalker(TreeNodeStream input, RecognizerSharedState state) { 317 super(input, state); 318 } 319 getTokenNames()320 @Override public String[] getTokenNames() { return smaliTreeWalker.tokenNames; } getGrammarFileName()321 @Override public String getGrammarFileName() { return "/mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g"; } 322 323 324 public String classType; 325 private boolean verboseErrors = false; 326 private int apiLevel = 15; 327 private Opcodes opcodes = new Opcodes(apiLevel); 328 private DexBuilder dexBuilder; 329 setDexBuilder(DexBuilder dexBuilder)330 public void setDexBuilder(DexBuilder dexBuilder) { 331 this.dexBuilder = dexBuilder; 332 } 333 setApiLevel(int apiLevel)334 public void setApiLevel(int apiLevel) { 335 this.opcodes = new Opcodes(apiLevel); 336 this.apiLevel = apiLevel; 337 } 338 setVerboseErrors(boolean verboseErrors)339 public void setVerboseErrors(boolean verboseErrors) { 340 this.verboseErrors = verboseErrors; 341 } 342 parseRegister_nibble(String register)343 private byte parseRegister_nibble(String register) 344 throws SemanticException { 345 int totalMethodRegisters = method_stack.peek().totalMethodRegisters; 346 int methodParameterRegisters = method_stack.peek().methodParameterRegisters; 347 348 //register should be in the format "v12" 349 int val = Byte.parseByte(register.substring(1)); 350 if (register.charAt(0) == 'p') { 351 val = totalMethodRegisters - methodParameterRegisters + val; 352 } 353 if (val >= 2<<4) { 354 throw new SemanticException(input, "The maximum allowed register in this context is list of registers is v15"); 355 } 356 //the parser wouldn't have accepted a negative register, i.e. v-1, so we don't have to check for val<0; 357 return (byte)val; 358 } 359 360 //return a short, because java's byte is signed parseRegister_byte(String register)361 private short parseRegister_byte(String register) 362 throws SemanticException { 363 int totalMethodRegisters = method_stack.peek().totalMethodRegisters; 364 int methodParameterRegisters = method_stack.peek().methodParameterRegisters; 365 //register should be in the format "v123" 366 int val = Short.parseShort(register.substring(1)); 367 if (register.charAt(0) == 'p') { 368 val = totalMethodRegisters - methodParameterRegisters + val; 369 } 370 if (val >= 2<<8) { 371 throw new SemanticException(input, "The maximum allowed register in this context is v255"); 372 } 373 return (short)val; 374 } 375 376 //return an int because java's short is signed parseRegister_short(String register)377 private int parseRegister_short(String register) 378 throws SemanticException { 379 int totalMethodRegisters = method_stack.peek().totalMethodRegisters; 380 int methodParameterRegisters = method_stack.peek().methodParameterRegisters; 381 //register should be in the format "v12345" 382 int val = Integer.parseInt(register.substring(1)); 383 if (register.charAt(0) == 'p') { 384 val = totalMethodRegisters - methodParameterRegisters + val; 385 } 386 if (val >= 2<<16) { 387 throw new SemanticException(input, "The maximum allowed register in this context is v65535"); 388 } 389 //the parser wouldn't accept a negative register, i.e. v-1, so we don't have to check for val<0; 390 return val; 391 } 392 getErrorMessage(RecognitionException e, String[] tokenNames)393 public String getErrorMessage(RecognitionException e, String[] tokenNames) { 394 if ( e instanceof SemanticException ) { 395 return e.getMessage(); 396 } else { 397 return super.getErrorMessage(e, tokenNames); 398 } 399 } 400 getErrorHeader(RecognitionException e)401 public String getErrorHeader(RecognitionException e) { 402 return getSourceName()+"["+ e.line+","+e.charPositionInLine+"]"; 403 } 404 405 406 407 // $ANTLR start "smali_file" 408 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:159:1: smali_file returns [ClassDef classDef] : ^( I_CLASS_DEF header methods fields annotations ) ; smali_file()409 public final ClassDef smali_file() throws RecognitionException { 410 ClassDef classDef = null; 411 412 413 TreeRuleReturnScope header1 =null; 414 Set<Annotation> annotations2 =null; 415 List<BuilderField> fields3 =null; 416 List<BuilderMethod> methods4 =null; 417 418 try { 419 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:160:3: ( ^( I_CLASS_DEF header methods fields annotations ) ) 420 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:160:5: ^( I_CLASS_DEF header methods fields annotations ) 421 { 422 match(input,I_CLASS_DEF,FOLLOW_I_CLASS_DEF_in_smali_file52); 423 match(input, Token.DOWN, null); 424 pushFollow(FOLLOW_header_in_smali_file54); 425 header1=header(); 426 state._fsp--; 427 428 pushFollow(FOLLOW_methods_in_smali_file56); 429 methods4=methods(); 430 state._fsp--; 431 432 pushFollow(FOLLOW_fields_in_smali_file58); 433 fields3=fields(); 434 state._fsp--; 435 436 pushFollow(FOLLOW_annotations_in_smali_file60); 437 annotations2=annotations(); 438 state._fsp--; 439 440 match(input, Token.UP, null); 441 442 443 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), 444 (header1!=null?((smaliTreeWalker.header_return)header1).implementsList:null), (header1!=null?((smaliTreeWalker.header_return)header1).sourceSpec:null), annotations2, fields3, methods4); 445 446 } 447 448 } 449 catch (Exception ex) { 450 451 if (verboseErrors) { 452 ex.printStackTrace(System.err); 453 } 454 reportError(new SemanticException(input, ex)); 455 456 } 457 458 finally { 459 // do for sure before leaving 460 } 461 return classDef; 462 } 463 // $ANTLR end "smali_file" 464 465 466 public static class header_return extends TreeRuleReturnScope { 467 public String classType; 468 public int accessFlags; 469 public String superType; 470 public List<String> implementsList; 471 public String sourceSpec; 472 }; 473 474 475 // $ANTLR start "header" 476 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:173:1: header returns [String classType, int accessFlags, String superType, List<String> implementsList, String sourceSpec] : class_spec ( super_spec )? implements_list source_spec ; header()477 public final smaliTreeWalker.header_return header() throws RecognitionException { 478 smaliTreeWalker.header_return retval = new smaliTreeWalker.header_return(); 479 retval.start = input.LT(1); 480 481 TreeRuleReturnScope class_spec5 =null; 482 String super_spec6 =null; 483 List<String> implements_list7 =null; 484 String source_spec8 =null; 485 486 try { 487 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:174:3: ( class_spec ( super_spec )? implements_list source_spec ) 488 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:174:3: class_spec ( super_spec )? implements_list source_spec 489 { 490 pushFollow(FOLLOW_class_spec_in_header85); 491 class_spec5=class_spec(); 492 state._fsp--; 493 494 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:174:14: ( super_spec )? 495 int alt1=2; 496 int LA1_0 = input.LA(1); 497 if ( (LA1_0==I_SUPER) ) { 498 alt1=1; 499 } 500 switch (alt1) { 501 case 1 : 502 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:174:14: super_spec 503 { 504 pushFollow(FOLLOW_super_spec_in_header87); 505 super_spec6=super_spec(); 506 state._fsp--; 507 508 } 509 break; 510 511 } 512 513 pushFollow(FOLLOW_implements_list_in_header90); 514 implements_list7=implements_list(); 515 state._fsp--; 516 517 pushFollow(FOLLOW_source_spec_in_header92); 518 source_spec8=source_spec(); 519 state._fsp--; 520 521 522 classType = (class_spec5!=null?((smaliTreeWalker.class_spec_return)class_spec5).type:null); 523 retval.classType = classType; 524 retval.accessFlags = (class_spec5!=null?((smaliTreeWalker.class_spec_return)class_spec5).accessFlags:0); 525 retval.superType = super_spec6; 526 retval.implementsList = implements_list7; 527 retval.sourceSpec = source_spec8; 528 529 } 530 531 } 532 catch (RecognitionException re) { 533 reportError(re); 534 recover(input,re); 535 } 536 finally { 537 // do for sure before leaving 538 } 539 return retval; 540 } 541 // $ANTLR end "header" 542 543 544 public static class class_spec_return extends TreeRuleReturnScope { 545 public String type; 546 public int accessFlags; 547 }; 548 549 550 // $ANTLR start "class_spec" 551 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:185:1: class_spec returns [String type, int accessFlags] : CLASS_DESCRIPTOR access_list ; class_spec()552 public final smaliTreeWalker.class_spec_return class_spec() throws RecognitionException { 553 smaliTreeWalker.class_spec_return retval = new smaliTreeWalker.class_spec_return(); 554 retval.start = input.LT(1); 555 556 CommonTree CLASS_DESCRIPTOR9=null; 557 int access_list10 =0; 558 559 try { 560 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:186:3: ( CLASS_DESCRIPTOR access_list ) 561 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:186:5: CLASS_DESCRIPTOR access_list 562 { 563 CLASS_DESCRIPTOR9=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_class_spec110); 564 pushFollow(FOLLOW_access_list_in_class_spec112); 565 access_list10=access_list(); 566 state._fsp--; 567 568 569 retval.type = (CLASS_DESCRIPTOR9!=null?CLASS_DESCRIPTOR9.getText():null); 570 retval.accessFlags = access_list10; 571 572 } 573 574 } 575 catch (RecognitionException re) { 576 reportError(re); 577 recover(input,re); 578 } 579 finally { 580 // do for sure before leaving 581 } 582 return retval; 583 } 584 // $ANTLR end "class_spec" 585 586 587 588 // $ANTLR start "super_spec" 589 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:192:1: super_spec returns [String type] : ^( I_SUPER CLASS_DESCRIPTOR ) ; super_spec()590 public final String super_spec() throws RecognitionException { 591 String type = null; 592 593 594 CommonTree CLASS_DESCRIPTOR11=null; 595 596 try { 597 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:193:3: ( ^( I_SUPER CLASS_DESCRIPTOR ) ) 598 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:193:5: ^( I_SUPER CLASS_DESCRIPTOR ) 599 { 600 match(input,I_SUPER,FOLLOW_I_SUPER_in_super_spec130); 601 match(input, Token.DOWN, null); 602 CLASS_DESCRIPTOR11=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_super_spec132); 603 match(input, Token.UP, null); 604 605 606 type = (CLASS_DESCRIPTOR11!=null?CLASS_DESCRIPTOR11.getText():null); 607 608 } 609 610 } 611 catch (RecognitionException re) { 612 reportError(re); 613 recover(input,re); 614 } 615 finally { 616 // do for sure before leaving 617 } 618 return type; 619 } 620 // $ANTLR end "super_spec" 621 622 623 624 // $ANTLR start "implements_spec" 625 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:199:1: implements_spec returns [String type] : ^( I_IMPLEMENTS CLASS_DESCRIPTOR ) ; implements_spec()626 public final String implements_spec() throws RecognitionException { 627 String type = null; 628 629 630 CommonTree CLASS_DESCRIPTOR12=null; 631 632 try { 633 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:200:3: ( ^( I_IMPLEMENTS CLASS_DESCRIPTOR ) ) 634 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:200:5: ^( I_IMPLEMENTS CLASS_DESCRIPTOR ) 635 { 636 match(input,I_IMPLEMENTS,FOLLOW_I_IMPLEMENTS_in_implements_spec152); 637 match(input, Token.DOWN, null); 638 CLASS_DESCRIPTOR12=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_implements_spec154); 639 match(input, Token.UP, null); 640 641 642 type = (CLASS_DESCRIPTOR12!=null?CLASS_DESCRIPTOR12.getText():null); 643 644 } 645 646 } 647 catch (RecognitionException re) { 648 reportError(re); 649 recover(input,re); 650 } 651 finally { 652 // do for sure before leaving 653 } 654 return type; 655 } 656 // $ANTLR end "implements_spec" 657 658 659 660 // $ANTLR start "implements_list" 661 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:205:1: implements_list returns [List<String> implementsList] : ( implements_spec )* ; implements_list()662 public final List<String> implements_list() throws RecognitionException { 663 List<String> implementsList = null; 664 665 666 String implements_spec13 =null; 667 668 List<String> typeList; 669 try { 670 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:207:3: ( ( implements_spec )* ) 671 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:207:5: ( implements_spec )* 672 { 673 typeList = Lists.newArrayList(); 674 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:208:5: ( implements_spec )* 675 loop2: 676 while (true) { 677 int alt2=2; 678 int LA2_0 = input.LA(1); 679 if ( (LA2_0==I_IMPLEMENTS) ) { 680 alt2=1; 681 } 682 683 switch (alt2) { 684 case 1 : 685 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:208:6: implements_spec 686 { 687 pushFollow(FOLLOW_implements_spec_in_implements_list184); 688 implements_spec13=implements_spec(); 689 state._fsp--; 690 691 typeList.add(implements_spec13); 692 } 693 break; 694 695 default : 696 break loop2; 697 } 698 } 699 700 701 if (typeList.size() > 0) { 702 implementsList = typeList; 703 } else { 704 implementsList = null; 705 } 706 707 } 708 709 } 710 catch (RecognitionException re) { 711 reportError(re); 712 recover(input,re); 713 } 714 finally { 715 // do for sure before leaving 716 } 717 return implementsList; 718 } 719 // $ANTLR end "implements_list" 720 721 722 723 // $ANTLR start "source_spec" 724 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:217:1: source_spec returns [String source] : ( ^( I_SOURCE string_literal ) |); source_spec()725 public final String source_spec() throws RecognitionException { 726 String source = null; 727 728 729 String string_literal14 =null; 730 731 try { 732 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:218:3: ( ^( I_SOURCE string_literal ) |) 733 int alt3=2; 734 int LA3_0 = input.LA(1); 735 if ( (LA3_0==I_SOURCE) ) { 736 alt3=1; 737 } 738 else if ( (LA3_0==I_METHODS) ) { 739 alt3=2; 740 } 741 742 else { 743 NoViableAltException nvae = 744 new NoViableAltException("", 3, 0, input); 745 throw nvae; 746 } 747 748 switch (alt3) { 749 case 1 : 750 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:218:5: ^( I_SOURCE string_literal ) 751 { 752 source = null; 753 match(input,I_SOURCE,FOLLOW_I_SOURCE_in_source_spec213); 754 match(input, Token.DOWN, null); 755 pushFollow(FOLLOW_string_literal_in_source_spec215); 756 string_literal14=string_literal(); 757 state._fsp--; 758 759 source = string_literal14; 760 match(input, Token.UP, null); 761 762 } 763 break; 764 case 2 : 765 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:220:16: 766 { 767 } 768 break; 769 770 } 771 } 772 catch (RecognitionException re) { 773 reportError(re); 774 recover(input,re); 775 } 776 finally { 777 // do for sure before leaving 778 } 779 return source; 780 } 781 // $ANTLR end "source_spec" 782 783 784 785 // $ANTLR start "access_list" 786 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:222:1: access_list returns [int value] : ^( I_ACCESS_LIST ( ACCESS_SPEC )* ) ; access_list()787 public final int access_list() throws RecognitionException { 788 int value = 0; 789 790 791 CommonTree ACCESS_SPEC15=null; 792 793 794 value = 0; 795 796 try { 797 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:227:3: ( ^( I_ACCESS_LIST ( ACCESS_SPEC )* ) ) 798 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:227:5: ^( I_ACCESS_LIST ( ACCESS_SPEC )* ) 799 { 800 match(input,I_ACCESS_LIST,FOLLOW_I_ACCESS_LIST_in_access_list248); 801 if ( input.LA(1)==Token.DOWN ) { 802 match(input, Token.DOWN, null); 803 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:228:7: ( ACCESS_SPEC )* 804 loop4: 805 while (true) { 806 int alt4=2; 807 int LA4_0 = input.LA(1); 808 if ( (LA4_0==ACCESS_SPEC) ) { 809 alt4=1; 810 } 811 812 switch (alt4) { 813 case 1 : 814 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:229:9: ACCESS_SPEC 815 { 816 ACCESS_SPEC15=(CommonTree)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_access_list266); 817 818 value |= AccessFlags.getAccessFlag(ACCESS_SPEC15.getText()).getValue(); 819 820 } 821 break; 822 823 default : 824 break loop4; 825 } 826 } 827 828 match(input, Token.UP, null); 829 } 830 831 } 832 833 } 834 catch (RecognitionException re) { 835 reportError(re); 836 recover(input,re); 837 } 838 finally { 839 // do for sure before leaving 840 } 841 return value; 842 } 843 // $ANTLR end "access_list" 844 845 846 847 // $ANTLR start "fields" 848 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:236:1: fields returns [List<BuilderField> fields] : ^( I_FIELDS ( field )* ) ; fields()849 public final List<BuilderField> fields() throws RecognitionException { 850 List<BuilderField> fields = null; 851 852 853 BuilderField field16 =null; 854 855 fields = Lists.newArrayList(); 856 try { 857 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:238:3: ( ^( I_FIELDS ( field )* ) ) 858 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:238:5: ^( I_FIELDS ( field )* ) 859 { 860 match(input,I_FIELDS,FOLLOW_I_FIELDS_in_fields308); 861 if ( input.LA(1)==Token.DOWN ) { 862 match(input, Token.DOWN, null); 863 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:239:7: ( field )* 864 loop5: 865 while (true) { 866 int alt5=2; 867 int LA5_0 = input.LA(1); 868 if ( (LA5_0==I_FIELD) ) { 869 alt5=1; 870 } 871 872 switch (alt5) { 873 case 1 : 874 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:239:8: field 875 { 876 pushFollow(FOLLOW_field_in_fields317); 877 field16=field(); 878 state._fsp--; 879 880 881 fields.add(field16); 882 883 } 884 break; 885 886 default : 887 break loop5; 888 } 889 } 890 891 match(input, Token.UP, null); 892 } 893 894 } 895 896 } 897 catch (RecognitionException re) { 898 reportError(re); 899 recover(input,re); 900 } 901 finally { 902 // do for sure before leaving 903 } 904 return fields; 905 } 906 // $ANTLR end "fields" 907 908 909 910 // $ANTLR start "methods" 911 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:244:1: methods returns [List<BuilderMethod> methods] : ^( I_METHODS ( method )* ) ; methods()912 public final List<BuilderMethod> methods() throws RecognitionException { 913 List<BuilderMethod> methods = null; 914 915 916 BuilderMethod method17 =null; 917 918 methods = Lists.newArrayList(); 919 try { 920 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:246:3: ( ^( I_METHODS ( method )* ) ) 921 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:246:5: ^( I_METHODS ( method )* ) 922 { 923 match(input,I_METHODS,FOLLOW_I_METHODS_in_methods349); 924 if ( input.LA(1)==Token.DOWN ) { 925 match(input, Token.DOWN, null); 926 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:247:7: ( method )* 927 loop6: 928 while (true) { 929 int alt6=2; 930 int LA6_0 = input.LA(1); 931 if ( (LA6_0==I_METHOD) ) { 932 alt6=1; 933 } 934 935 switch (alt6) { 936 case 1 : 937 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:247:8: method 938 { 939 pushFollow(FOLLOW_method_in_methods358); 940 method17=method(); 941 state._fsp--; 942 943 944 methods.add(method17); 945 946 } 947 break; 948 949 default : 950 break loop6; 951 } 952 } 953 954 match(input, Token.UP, null); 955 } 956 957 } 958 959 } 960 catch (RecognitionException re) { 961 reportError(re); 962 recover(input,re); 963 } 964 finally { 965 // do for sure before leaving 966 } 967 return methods; 968 } 969 // $ANTLR end "methods" 970 971 972 973 // $ANTLR start "field" 974 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:252:1: field returns [BuilderField field] : ^( I_FIELD SIMPLE_NAME access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) field_initial_value ( annotations )? ) ; field()975 public final BuilderField field() throws RecognitionException { 976 BuilderField field = null; 977 978 979 CommonTree SIMPLE_NAME20=null; 980 int access_list18 =0; 981 EncodedValue field_initial_value19 =null; 982 TreeRuleReturnScope nonvoid_type_descriptor21 =null; 983 Set<Annotation> annotations22 =null; 984 985 try { 986 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:253:3: ( ^( I_FIELD SIMPLE_NAME access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) field_initial_value ( annotations )? ) ) 987 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:253:4: ^( I_FIELD SIMPLE_NAME access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) field_initial_value ( annotations )? ) 988 { 989 match(input,I_FIELD,FOLLOW_I_FIELD_in_field383); 990 match(input, Token.DOWN, null); 991 SIMPLE_NAME20=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_field385); 992 pushFollow(FOLLOW_access_list_in_field387); 993 access_list18=access_list(); 994 state._fsp--; 995 996 match(input,I_FIELD_TYPE,FOLLOW_I_FIELD_TYPE_in_field390); 997 match(input, Token.DOWN, null); 998 pushFollow(FOLLOW_nonvoid_type_descriptor_in_field392); 999 nonvoid_type_descriptor21=nonvoid_type_descriptor(); 1000 state._fsp--; 1001 1002 match(input, Token.UP, null); 1003 1004 pushFollow(FOLLOW_field_initial_value_in_field395); 1005 field_initial_value19=field_initial_value(); 1006 state._fsp--; 1007 1008 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:253:98: ( annotations )? 1009 int alt7=2; 1010 int LA7_0 = input.LA(1); 1011 if ( (LA7_0==I_ANNOTATIONS) ) { 1012 alt7=1; 1013 } 1014 switch (alt7) { 1015 case 1 : 1016 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:253:98: annotations 1017 { 1018 pushFollow(FOLLOW_annotations_in_field397); 1019 annotations22=annotations(); 1020 state._fsp--; 1021 1022 } 1023 break; 1024 1025 } 1026 1027 match(input, Token.UP, null); 1028 1029 1030 int accessFlags = access_list18; 1031 1032 1033 if (!AccessFlags.STATIC.isSet(accessFlags) && field_initial_value19 != null) { 1034 throw new SemanticException(input, "Initial field values can only be specified for static fields."); 1035 } 1036 1037 field = dexBuilder.internField(classType, (SIMPLE_NAME20!=null?SIMPLE_NAME20.getText():null), (nonvoid_type_descriptor21!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor21).type:null), access_list18, 1038 field_initial_value19, annotations22); 1039 1040 } 1041 1042 } 1043 catch (RecognitionException re) { 1044 reportError(re); 1045 recover(input,re); 1046 } 1047 finally { 1048 // do for sure before leaving 1049 } 1050 return field; 1051 } 1052 // $ANTLR end "field" 1053 1054 1055 1056 // $ANTLR start "field_initial_value" 1057 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:267:1: field_initial_value returns [EncodedValue encodedValue] : ( ^( I_FIELD_INITIAL_VALUE literal ) |); field_initial_value()1058 public final EncodedValue field_initial_value() throws RecognitionException { 1059 EncodedValue encodedValue = null; 1060 1061 1062 EncodedValue literal23 =null; 1063 1064 try { 1065 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:268:3: ( ^( I_FIELD_INITIAL_VALUE literal ) |) 1066 int alt8=2; 1067 int LA8_0 = input.LA(1); 1068 if ( (LA8_0==I_FIELD_INITIAL_VALUE) ) { 1069 alt8=1; 1070 } 1071 else if ( (LA8_0==UP||LA8_0==I_ANNOTATIONS) ) { 1072 alt8=2; 1073 } 1074 1075 else { 1076 NoViableAltException nvae = 1077 new NoViableAltException("", 8, 0, input); 1078 throw nvae; 1079 } 1080 1081 switch (alt8) { 1082 case 1 : 1083 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:268:5: ^( I_FIELD_INITIAL_VALUE literal ) 1084 { 1085 match(input,I_FIELD_INITIAL_VALUE,FOLLOW_I_FIELD_INITIAL_VALUE_in_field_initial_value418); 1086 match(input, Token.DOWN, null); 1087 pushFollow(FOLLOW_literal_in_field_initial_value420); 1088 literal23=literal(); 1089 state._fsp--; 1090 1091 match(input, Token.UP, null); 1092 1093 encodedValue = literal23; 1094 } 1095 break; 1096 case 2 : 1097 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:269:16: 1098 { 1099 } 1100 break; 1101 1102 } 1103 } 1104 catch (RecognitionException re) { 1105 reportError(re); 1106 recover(input,re); 1107 } 1108 finally { 1109 // do for sure before leaving 1110 } 1111 return encodedValue; 1112 } 1113 // $ANTLR end "field_initial_value" 1114 1115 1116 1117 // $ANTLR start "literal" 1118 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:271:1: literal returns [EncodedValue encodedValue] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | string_literal | bool_literal | NULL_LITERAL | type_descriptor | array_literal | subannotation | field_literal | method_literal | enum_literal ); literal()1119 public final EncodedValue literal() throws RecognitionException { 1120 EncodedValue encodedValue = null; 1121 1122 1123 int integer_literal24 =0; 1124 long long_literal25 =0; 1125 short short_literal26 =0; 1126 byte byte_literal27 =0; 1127 float float_literal28 =0.0f; 1128 double double_literal29 =0.0; 1129 char char_literal30 =0; 1130 String string_literal31 =null; 1131 boolean bool_literal32 =false; 1132 String type_descriptor33 =null; 1133 List<EncodedValue> array_literal34 =null; 1134 TreeRuleReturnScope subannotation35 =null; 1135 FieldReference field_literal36 =null; 1136 MethodReference method_literal37 =null; 1137 FieldReference enum_literal38 =null; 1138 1139 try { 1140 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:272:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | string_literal | bool_literal | NULL_LITERAL | type_descriptor | array_literal | subannotation | field_literal | method_literal | enum_literal ) 1141 int alt9=16; 1142 switch ( input.LA(1) ) { 1143 case INTEGER_LITERAL: 1144 { 1145 alt9=1; 1146 } 1147 break; 1148 case LONG_LITERAL: 1149 { 1150 alt9=2; 1151 } 1152 break; 1153 case SHORT_LITERAL: 1154 { 1155 alt9=3; 1156 } 1157 break; 1158 case BYTE_LITERAL: 1159 { 1160 alt9=4; 1161 } 1162 break; 1163 case FLOAT_LITERAL: 1164 { 1165 alt9=5; 1166 } 1167 break; 1168 case DOUBLE_LITERAL: 1169 { 1170 alt9=6; 1171 } 1172 break; 1173 case CHAR_LITERAL: 1174 { 1175 alt9=7; 1176 } 1177 break; 1178 case STRING_LITERAL: 1179 { 1180 alt9=8; 1181 } 1182 break; 1183 case BOOL_LITERAL: 1184 { 1185 alt9=9; 1186 } 1187 break; 1188 case NULL_LITERAL: 1189 { 1190 alt9=10; 1191 } 1192 break; 1193 case ARRAY_DESCRIPTOR: 1194 case CLASS_DESCRIPTOR: 1195 case PRIMITIVE_TYPE: 1196 case VOID_TYPE: 1197 { 1198 alt9=11; 1199 } 1200 break; 1201 case I_ENCODED_ARRAY: 1202 { 1203 alt9=12; 1204 } 1205 break; 1206 case I_SUBANNOTATION: 1207 { 1208 alt9=13; 1209 } 1210 break; 1211 case I_ENCODED_FIELD: 1212 { 1213 alt9=14; 1214 } 1215 break; 1216 case I_ENCODED_METHOD: 1217 { 1218 alt9=15; 1219 } 1220 break; 1221 case I_ENCODED_ENUM: 1222 { 1223 alt9=16; 1224 } 1225 break; 1226 default: 1227 NoViableAltException nvae = 1228 new NoViableAltException("", 9, 0, input); 1229 throw nvae; 1230 } 1231 switch (alt9) { 1232 case 1 : 1233 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:272:5: integer_literal 1234 { 1235 pushFollow(FOLLOW_integer_literal_in_literal442); 1236 integer_literal24=integer_literal(); 1237 state._fsp--; 1238 1239 encodedValue = new ImmutableIntEncodedValue(integer_literal24); 1240 } 1241 break; 1242 case 2 : 1243 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:273:5: long_literal 1244 { 1245 pushFollow(FOLLOW_long_literal_in_literal450); 1246 long_literal25=long_literal(); 1247 state._fsp--; 1248 1249 encodedValue = new ImmutableLongEncodedValue(long_literal25); 1250 } 1251 break; 1252 case 3 : 1253 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:274:5: short_literal 1254 { 1255 pushFollow(FOLLOW_short_literal_in_literal458); 1256 short_literal26=short_literal(); 1257 state._fsp--; 1258 1259 encodedValue = new ImmutableShortEncodedValue(short_literal26); 1260 } 1261 break; 1262 case 4 : 1263 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:275:5: byte_literal 1264 { 1265 pushFollow(FOLLOW_byte_literal_in_literal466); 1266 byte_literal27=byte_literal(); 1267 state._fsp--; 1268 1269 encodedValue = new ImmutableByteEncodedValue(byte_literal27); 1270 } 1271 break; 1272 case 5 : 1273 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:276:5: float_literal 1274 { 1275 pushFollow(FOLLOW_float_literal_in_literal474); 1276 float_literal28=float_literal(); 1277 state._fsp--; 1278 1279 encodedValue = new ImmutableFloatEncodedValue(float_literal28); 1280 } 1281 break; 1282 case 6 : 1283 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:277:5: double_literal 1284 { 1285 pushFollow(FOLLOW_double_literal_in_literal482); 1286 double_literal29=double_literal(); 1287 state._fsp--; 1288 1289 encodedValue = new ImmutableDoubleEncodedValue(double_literal29); 1290 } 1291 break; 1292 case 7 : 1293 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:278:5: char_literal 1294 { 1295 pushFollow(FOLLOW_char_literal_in_literal490); 1296 char_literal30=char_literal(); 1297 state._fsp--; 1298 1299 encodedValue = new ImmutableCharEncodedValue(char_literal30); 1300 } 1301 break; 1302 case 8 : 1303 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:279:5: string_literal 1304 { 1305 pushFollow(FOLLOW_string_literal_in_literal498); 1306 string_literal31=string_literal(); 1307 state._fsp--; 1308 1309 encodedValue = new ImmutableStringEncodedValue(string_literal31); 1310 } 1311 break; 1312 case 9 : 1313 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:280:5: bool_literal 1314 { 1315 pushFollow(FOLLOW_bool_literal_in_literal506); 1316 bool_literal32=bool_literal(); 1317 state._fsp--; 1318 1319 encodedValue = ImmutableBooleanEncodedValue.forBoolean(bool_literal32); 1320 } 1321 break; 1322 case 10 : 1323 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:281:5: NULL_LITERAL 1324 { 1325 match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_literal514); 1326 encodedValue = ImmutableNullEncodedValue.INSTANCE; 1327 } 1328 break; 1329 case 11 : 1330 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:282:5: type_descriptor 1331 { 1332 pushFollow(FOLLOW_type_descriptor_in_literal522); 1333 type_descriptor33=type_descriptor(); 1334 state._fsp--; 1335 1336 encodedValue = new ImmutableTypeEncodedValue(type_descriptor33); 1337 } 1338 break; 1339 case 12 : 1340 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:283:5: array_literal 1341 { 1342 pushFollow(FOLLOW_array_literal_in_literal530); 1343 array_literal34=array_literal(); 1344 state._fsp--; 1345 1346 encodedValue = new ImmutableArrayEncodedValue(array_literal34); 1347 } 1348 break; 1349 case 13 : 1350 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:284:5: subannotation 1351 { 1352 pushFollow(FOLLOW_subannotation_in_literal538); 1353 subannotation35=subannotation(); 1354 state._fsp--; 1355 1356 encodedValue = new ImmutableAnnotationEncodedValue((subannotation35!=null?((smaliTreeWalker.subannotation_return)subannotation35).annotationType:null), (subannotation35!=null?((smaliTreeWalker.subannotation_return)subannotation35).elements:null)); 1357 } 1358 break; 1359 case 14 : 1360 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:285:5: field_literal 1361 { 1362 pushFollow(FOLLOW_field_literal_in_literal546); 1363 field_literal36=field_literal(); 1364 state._fsp--; 1365 1366 encodedValue = new ImmutableFieldEncodedValue(field_literal36); 1367 } 1368 break; 1369 case 15 : 1370 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:286:5: method_literal 1371 { 1372 pushFollow(FOLLOW_method_literal_in_literal554); 1373 method_literal37=method_literal(); 1374 state._fsp--; 1375 1376 encodedValue = new ImmutableMethodEncodedValue(method_literal37); 1377 } 1378 break; 1379 case 16 : 1380 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:287:5: enum_literal 1381 { 1382 pushFollow(FOLLOW_enum_literal_in_literal562); 1383 enum_literal38=enum_literal(); 1384 state._fsp--; 1385 1386 encodedValue = new ImmutableEnumEncodedValue(enum_literal38); 1387 } 1388 break; 1389 1390 } 1391 } 1392 catch (RecognitionException re) { 1393 reportError(re); 1394 recover(input,re); 1395 } 1396 finally { 1397 // do for sure before leaving 1398 } 1399 return encodedValue; 1400 } 1401 // $ANTLR end "literal" 1402 1403 1404 1405 // $ANTLR start "fixed_64bit_literal_number" 1406 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:290:1: fixed_64bit_literal_number returns [Number value] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal ); fixed_64bit_literal_number()1407 public final Number fixed_64bit_literal_number() throws RecognitionException { 1408 Number value = null; 1409 1410 1411 int integer_literal39 =0; 1412 long long_literal40 =0; 1413 short short_literal41 =0; 1414 byte byte_literal42 =0; 1415 float float_literal43 =0.0f; 1416 double double_literal44 =0.0; 1417 char char_literal45 =0; 1418 boolean bool_literal46 =false; 1419 1420 try { 1421 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:291:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal ) 1422 int alt10=8; 1423 switch ( input.LA(1) ) { 1424 case INTEGER_LITERAL: 1425 { 1426 alt10=1; 1427 } 1428 break; 1429 case LONG_LITERAL: 1430 { 1431 alt10=2; 1432 } 1433 break; 1434 case SHORT_LITERAL: 1435 { 1436 alt10=3; 1437 } 1438 break; 1439 case BYTE_LITERAL: 1440 { 1441 alt10=4; 1442 } 1443 break; 1444 case FLOAT_LITERAL: 1445 { 1446 alt10=5; 1447 } 1448 break; 1449 case DOUBLE_LITERAL: 1450 { 1451 alt10=6; 1452 } 1453 break; 1454 case CHAR_LITERAL: 1455 { 1456 alt10=7; 1457 } 1458 break; 1459 case BOOL_LITERAL: 1460 { 1461 alt10=8; 1462 } 1463 break; 1464 default: 1465 NoViableAltException nvae = 1466 new NoViableAltException("", 10, 0, input); 1467 throw nvae; 1468 } 1469 switch (alt10) { 1470 case 1 : 1471 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:291:5: integer_literal 1472 { 1473 pushFollow(FOLLOW_integer_literal_in_fixed_64bit_literal_number578); 1474 integer_literal39=integer_literal(); 1475 state._fsp--; 1476 1477 value = integer_literal39; 1478 } 1479 break; 1480 case 2 : 1481 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:292:5: long_literal 1482 { 1483 pushFollow(FOLLOW_long_literal_in_fixed_64bit_literal_number586); 1484 long_literal40=long_literal(); 1485 state._fsp--; 1486 1487 value = long_literal40; 1488 } 1489 break; 1490 case 3 : 1491 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:293:5: short_literal 1492 { 1493 pushFollow(FOLLOW_short_literal_in_fixed_64bit_literal_number594); 1494 short_literal41=short_literal(); 1495 state._fsp--; 1496 1497 value = short_literal41; 1498 } 1499 break; 1500 case 4 : 1501 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:294:5: byte_literal 1502 { 1503 pushFollow(FOLLOW_byte_literal_in_fixed_64bit_literal_number602); 1504 byte_literal42=byte_literal(); 1505 state._fsp--; 1506 1507 value = byte_literal42; 1508 } 1509 break; 1510 case 5 : 1511 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:295:5: float_literal 1512 { 1513 pushFollow(FOLLOW_float_literal_in_fixed_64bit_literal_number610); 1514 float_literal43=float_literal(); 1515 state._fsp--; 1516 1517 value = Float.floatToRawIntBits(float_literal43); 1518 } 1519 break; 1520 case 6 : 1521 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:296:5: double_literal 1522 { 1523 pushFollow(FOLLOW_double_literal_in_fixed_64bit_literal_number618); 1524 double_literal44=double_literal(); 1525 state._fsp--; 1526 1527 value = Double.doubleToRawLongBits(double_literal44); 1528 } 1529 break; 1530 case 7 : 1531 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:297:5: char_literal 1532 { 1533 pushFollow(FOLLOW_char_literal_in_fixed_64bit_literal_number626); 1534 char_literal45=char_literal(); 1535 state._fsp--; 1536 1537 value = (int)char_literal45; 1538 } 1539 break; 1540 case 8 : 1541 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:298:5: bool_literal 1542 { 1543 pushFollow(FOLLOW_bool_literal_in_fixed_64bit_literal_number634); 1544 bool_literal46=bool_literal(); 1545 state._fsp--; 1546 1547 value = bool_literal46?1:0; 1548 } 1549 break; 1550 1551 } 1552 } 1553 catch (RecognitionException re) { 1554 reportError(re); 1555 recover(input,re); 1556 } 1557 finally { 1558 // do for sure before leaving 1559 } 1560 return value; 1561 } 1562 // $ANTLR end "fixed_64bit_literal_number" 1563 1564 1565 1566 // $ANTLR start "fixed_64bit_literal" 1567 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:300:1: fixed_64bit_literal returns [long value] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal ); fixed_64bit_literal()1568 public final long fixed_64bit_literal() throws RecognitionException { 1569 long value = 0; 1570 1571 1572 int integer_literal47 =0; 1573 long long_literal48 =0; 1574 short short_literal49 =0; 1575 byte byte_literal50 =0; 1576 float float_literal51 =0.0f; 1577 double double_literal52 =0.0; 1578 char char_literal53 =0; 1579 boolean bool_literal54 =false; 1580 1581 try { 1582 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:301:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal ) 1583 int alt11=8; 1584 switch ( input.LA(1) ) { 1585 case INTEGER_LITERAL: 1586 { 1587 alt11=1; 1588 } 1589 break; 1590 case LONG_LITERAL: 1591 { 1592 alt11=2; 1593 } 1594 break; 1595 case SHORT_LITERAL: 1596 { 1597 alt11=3; 1598 } 1599 break; 1600 case BYTE_LITERAL: 1601 { 1602 alt11=4; 1603 } 1604 break; 1605 case FLOAT_LITERAL: 1606 { 1607 alt11=5; 1608 } 1609 break; 1610 case DOUBLE_LITERAL: 1611 { 1612 alt11=6; 1613 } 1614 break; 1615 case CHAR_LITERAL: 1616 { 1617 alt11=7; 1618 } 1619 break; 1620 case BOOL_LITERAL: 1621 { 1622 alt11=8; 1623 } 1624 break; 1625 default: 1626 NoViableAltException nvae = 1627 new NoViableAltException("", 11, 0, input); 1628 throw nvae; 1629 } 1630 switch (alt11) { 1631 case 1 : 1632 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:301:5: integer_literal 1633 { 1634 pushFollow(FOLLOW_integer_literal_in_fixed_64bit_literal649); 1635 integer_literal47=integer_literal(); 1636 state._fsp--; 1637 1638 value = integer_literal47; 1639 } 1640 break; 1641 case 2 : 1642 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:302:5: long_literal 1643 { 1644 pushFollow(FOLLOW_long_literal_in_fixed_64bit_literal657); 1645 long_literal48=long_literal(); 1646 state._fsp--; 1647 1648 value = long_literal48; 1649 } 1650 break; 1651 case 3 : 1652 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:303:5: short_literal 1653 { 1654 pushFollow(FOLLOW_short_literal_in_fixed_64bit_literal665); 1655 short_literal49=short_literal(); 1656 state._fsp--; 1657 1658 value = short_literal49; 1659 } 1660 break; 1661 case 4 : 1662 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:304:5: byte_literal 1663 { 1664 pushFollow(FOLLOW_byte_literal_in_fixed_64bit_literal673); 1665 byte_literal50=byte_literal(); 1666 state._fsp--; 1667 1668 value = byte_literal50; 1669 } 1670 break; 1671 case 5 : 1672 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:305:5: float_literal 1673 { 1674 pushFollow(FOLLOW_float_literal_in_fixed_64bit_literal681); 1675 float_literal51=float_literal(); 1676 state._fsp--; 1677 1678 value = Float.floatToRawIntBits(float_literal51); 1679 } 1680 break; 1681 case 6 : 1682 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:306:5: double_literal 1683 { 1684 pushFollow(FOLLOW_double_literal_in_fixed_64bit_literal689); 1685 double_literal52=double_literal(); 1686 state._fsp--; 1687 1688 value = Double.doubleToRawLongBits(double_literal52); 1689 } 1690 break; 1691 case 7 : 1692 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:307:5: char_literal 1693 { 1694 pushFollow(FOLLOW_char_literal_in_fixed_64bit_literal697); 1695 char_literal53=char_literal(); 1696 state._fsp--; 1697 1698 value = char_literal53; 1699 } 1700 break; 1701 case 8 : 1702 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:308:5: bool_literal 1703 { 1704 pushFollow(FOLLOW_bool_literal_in_fixed_64bit_literal705); 1705 bool_literal54=bool_literal(); 1706 state._fsp--; 1707 1708 value = bool_literal54?1:0; 1709 } 1710 break; 1711 1712 } 1713 } 1714 catch (RecognitionException re) { 1715 reportError(re); 1716 recover(input,re); 1717 } 1718 finally { 1719 // do for sure before leaving 1720 } 1721 return value; 1722 } 1723 // $ANTLR end "fixed_64bit_literal" 1724 1725 1726 1727 // $ANTLR start "fixed_32bit_literal" 1728 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:312:1: fixed_32bit_literal returns [int value] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | char_literal | bool_literal ); fixed_32bit_literal()1729 public final int fixed_32bit_literal() throws RecognitionException { 1730 int value = 0; 1731 1732 1733 int integer_literal55 =0; 1734 long long_literal56 =0; 1735 short short_literal57 =0; 1736 byte byte_literal58 =0; 1737 float float_literal59 =0.0f; 1738 char char_literal60 =0; 1739 boolean bool_literal61 =false; 1740 1741 try { 1742 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:313:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | char_literal | bool_literal ) 1743 int alt12=7; 1744 switch ( input.LA(1) ) { 1745 case INTEGER_LITERAL: 1746 { 1747 alt12=1; 1748 } 1749 break; 1750 case LONG_LITERAL: 1751 { 1752 alt12=2; 1753 } 1754 break; 1755 case SHORT_LITERAL: 1756 { 1757 alt12=3; 1758 } 1759 break; 1760 case BYTE_LITERAL: 1761 { 1762 alt12=4; 1763 } 1764 break; 1765 case FLOAT_LITERAL: 1766 { 1767 alt12=5; 1768 } 1769 break; 1770 case CHAR_LITERAL: 1771 { 1772 alt12=6; 1773 } 1774 break; 1775 case BOOL_LITERAL: 1776 { 1777 alt12=7; 1778 } 1779 break; 1780 default: 1781 NoViableAltException nvae = 1782 new NoViableAltException("", 12, 0, input); 1783 throw nvae; 1784 } 1785 switch (alt12) { 1786 case 1 : 1787 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:313:5: integer_literal 1788 { 1789 pushFollow(FOLLOW_integer_literal_in_fixed_32bit_literal722); 1790 integer_literal55=integer_literal(); 1791 state._fsp--; 1792 1793 value = integer_literal55; 1794 } 1795 break; 1796 case 2 : 1797 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:314:5: long_literal 1798 { 1799 pushFollow(FOLLOW_long_literal_in_fixed_32bit_literal730); 1800 long_literal56=long_literal(); 1801 state._fsp--; 1802 1803 LiteralTools.checkInt(long_literal56); value = (int)long_literal56; 1804 } 1805 break; 1806 case 3 : 1807 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:315:5: short_literal 1808 { 1809 pushFollow(FOLLOW_short_literal_in_fixed_32bit_literal738); 1810 short_literal57=short_literal(); 1811 state._fsp--; 1812 1813 value = short_literal57; 1814 } 1815 break; 1816 case 4 : 1817 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:316:5: byte_literal 1818 { 1819 pushFollow(FOLLOW_byte_literal_in_fixed_32bit_literal746); 1820 byte_literal58=byte_literal(); 1821 state._fsp--; 1822 1823 value = byte_literal58; 1824 } 1825 break; 1826 case 5 : 1827 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:317:5: float_literal 1828 { 1829 pushFollow(FOLLOW_float_literal_in_fixed_32bit_literal754); 1830 float_literal59=float_literal(); 1831 state._fsp--; 1832 1833 value = Float.floatToRawIntBits(float_literal59); 1834 } 1835 break; 1836 case 6 : 1837 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:318:5: char_literal 1838 { 1839 pushFollow(FOLLOW_char_literal_in_fixed_32bit_literal762); 1840 char_literal60=char_literal(); 1841 state._fsp--; 1842 1843 value = char_literal60; 1844 } 1845 break; 1846 case 7 : 1847 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:319:5: bool_literal 1848 { 1849 pushFollow(FOLLOW_bool_literal_in_fixed_32bit_literal770); 1850 bool_literal61=bool_literal(); 1851 state._fsp--; 1852 1853 value = bool_literal61?1:0; 1854 } 1855 break; 1856 1857 } 1858 } 1859 catch (RecognitionException re) { 1860 reportError(re); 1861 recover(input,re); 1862 } 1863 finally { 1864 // do for sure before leaving 1865 } 1866 return value; 1867 } 1868 // $ANTLR end "fixed_32bit_literal" 1869 1870 1871 1872 // $ANTLR start "array_elements" 1873 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:321:1: array_elements returns [List<Number> elements] : ^( I_ARRAY_ELEMENTS ( fixed_64bit_literal_number )* ) ; array_elements()1874 public final List<Number> array_elements() throws RecognitionException { 1875 List<Number> elements = null; 1876 1877 1878 Number fixed_64bit_literal_number62 =null; 1879 1880 try { 1881 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:322:3: ( ^( I_ARRAY_ELEMENTS ( fixed_64bit_literal_number )* ) ) 1882 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:322:5: ^( I_ARRAY_ELEMENTS ( fixed_64bit_literal_number )* ) 1883 { 1884 elements = Lists.newArrayList(); 1885 match(input,I_ARRAY_ELEMENTS,FOLLOW_I_ARRAY_ELEMENTS_in_array_elements792); 1886 if ( input.LA(1)==Token.DOWN ) { 1887 match(input, Token.DOWN, null); 1888 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:324:7: ( fixed_64bit_literal_number )* 1889 loop13: 1890 while (true) { 1891 int alt13=2; 1892 int LA13_0 = input.LA(1); 1893 if ( ((LA13_0 >= BOOL_LITERAL && LA13_0 <= BYTE_LITERAL)||LA13_0==CHAR_LITERAL||LA13_0==DOUBLE_LITERAL||LA13_0==FLOAT_LITERAL||LA13_0==INTEGER_LITERAL||LA13_0==LONG_LITERAL||LA13_0==SHORT_LITERAL) ) { 1894 alt13=1; 1895 } 1896 1897 switch (alt13) { 1898 case 1 : 1899 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:324:8: fixed_64bit_literal_number 1900 { 1901 pushFollow(FOLLOW_fixed_64bit_literal_number_in_array_elements801); 1902 fixed_64bit_literal_number62=fixed_64bit_literal_number(); 1903 state._fsp--; 1904 1905 1906 elements.add(fixed_64bit_literal_number62); 1907 1908 } 1909 break; 1910 1911 default : 1912 break loop13; 1913 } 1914 } 1915 1916 match(input, Token.UP, null); 1917 } 1918 1919 } 1920 1921 } 1922 catch (RecognitionException re) { 1923 reportError(re); 1924 recover(input,re); 1925 } 1926 finally { 1927 // do for sure before leaving 1928 } 1929 return elements; 1930 } 1931 // $ANTLR end "array_elements" 1932 1933 1934 1935 // $ANTLR start "packed_switch_elements" 1936 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:329:1: packed_switch_elements returns [List<Label> elements] : ^( I_PACKED_SWITCH_ELEMENTS ( label_ref )* ) ; packed_switch_elements()1937 public final List<Label> packed_switch_elements() throws RecognitionException { 1938 List<Label> elements = null; 1939 1940 1941 Label label_ref63 =null; 1942 1943 elements = Lists.newArrayList(); 1944 try { 1945 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:331:3: ( ^( I_PACKED_SWITCH_ELEMENTS ( label_ref )* ) ) 1946 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:332:5: ^( I_PACKED_SWITCH_ELEMENTS ( label_ref )* ) 1947 { 1948 match(input,I_PACKED_SWITCH_ELEMENTS,FOLLOW_I_PACKED_SWITCH_ELEMENTS_in_packed_switch_elements837); 1949 if ( input.LA(1)==Token.DOWN ) { 1950 match(input, Token.DOWN, null); 1951 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:333:7: ( label_ref )* 1952 loop14: 1953 while (true) { 1954 int alt14=2; 1955 int LA14_0 = input.LA(1); 1956 if ( (LA14_0==SIMPLE_NAME) ) { 1957 alt14=1; 1958 } 1959 1960 switch (alt14) { 1961 case 1 : 1962 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:333:8: label_ref 1963 { 1964 pushFollow(FOLLOW_label_ref_in_packed_switch_elements846); 1965 label_ref63=label_ref(); 1966 state._fsp--; 1967 1968 elements.add(label_ref63); 1969 } 1970 break; 1971 1972 default : 1973 break loop14; 1974 } 1975 } 1976 1977 match(input, Token.UP, null); 1978 } 1979 1980 } 1981 1982 } 1983 catch (RecognitionException re) { 1984 reportError(re); 1985 recover(input,re); 1986 } 1987 finally { 1988 // do for sure before leaving 1989 } 1990 return elements; 1991 } 1992 // $ANTLR end "packed_switch_elements" 1993 1994 1995 1996 // $ANTLR start "sparse_switch_elements" 1997 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:336:1: sparse_switch_elements returns [List<SwitchLabelElement> elements] : ^( I_SPARSE_SWITCH_ELEMENTS ( fixed_32bit_literal label_ref )* ) ; sparse_switch_elements()1998 public final List<SwitchLabelElement> sparse_switch_elements() throws RecognitionException { 1999 List<SwitchLabelElement> elements = null; 2000 2001 2002 int fixed_32bit_literal64 =0; 2003 Label label_ref65 =null; 2004 2005 elements = Lists.newArrayList(); 2006 try { 2007 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:338:3: ( ^( I_SPARSE_SWITCH_ELEMENTS ( fixed_32bit_literal label_ref )* ) ) 2008 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:339:5: ^( I_SPARSE_SWITCH_ELEMENTS ( fixed_32bit_literal label_ref )* ) 2009 { 2010 match(input,I_SPARSE_SWITCH_ELEMENTS,FOLLOW_I_SPARSE_SWITCH_ELEMENTS_in_sparse_switch_elements881); 2011 if ( input.LA(1)==Token.DOWN ) { 2012 match(input, Token.DOWN, null); 2013 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:340:8: ( fixed_32bit_literal label_ref )* 2014 loop15: 2015 while (true) { 2016 int alt15=2; 2017 int LA15_0 = input.LA(1); 2018 if ( ((LA15_0 >= BOOL_LITERAL && LA15_0 <= BYTE_LITERAL)||LA15_0==CHAR_LITERAL||LA15_0==FLOAT_LITERAL||LA15_0==INTEGER_LITERAL||LA15_0==LONG_LITERAL||LA15_0==SHORT_LITERAL) ) { 2019 alt15=1; 2020 } 2021 2022 switch (alt15) { 2023 case 1 : 2024 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:340:9: fixed_32bit_literal label_ref 2025 { 2026 pushFollow(FOLLOW_fixed_32bit_literal_in_sparse_switch_elements891); 2027 fixed_32bit_literal64=fixed_32bit_literal(); 2028 state._fsp--; 2029 2030 pushFollow(FOLLOW_label_ref_in_sparse_switch_elements893); 2031 label_ref65=label_ref(); 2032 state._fsp--; 2033 2034 2035 elements.add(new SwitchLabelElement(fixed_32bit_literal64, label_ref65)); 2036 2037 } 2038 break; 2039 2040 default : 2041 break loop15; 2042 } 2043 } 2044 2045 match(input, Token.UP, null); 2046 } 2047 2048 } 2049 2050 } 2051 catch (RecognitionException re) { 2052 reportError(re); 2053 recover(input,re); 2054 } 2055 finally { 2056 // do for sure before leaving 2057 } 2058 return elements; 2059 } 2060 // $ANTLR end "sparse_switch_elements" 2061 2062 2063 protected static class method_scope { 2064 boolean isStatic; 2065 int totalMethodRegisters; 2066 int methodParameterRegisters; 2067 MethodImplementationBuilder methodBuilder; 2068 } 2069 protected Stack<method_scope> method_stack = new Stack<method_scope>(); 2070 2071 2072 // $ANTLR start "method" 2073 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:346:1: method returns [BuilderMethod ret] : ^( I_METHOD method_name_and_prototype access_list ( ( registers_directive ) |) ordered_method_items catches parameters[$method_name_and_prototype.parameters] annotations ) ; method()2074 public final BuilderMethod method() throws RecognitionException { 2075 method_stack.push(new method_scope()); 2076 BuilderMethod ret = null; 2077 2078 2079 CommonTree I_METHOD70=null; 2080 int access_list66 =0; 2081 TreeRuleReturnScope method_name_and_prototype67 =null; 2082 TreeRuleReturnScope registers_directive68 =null; 2083 List<BuilderTryBlock> catches69 =null; 2084 Set<Annotation> annotations71 =null; 2085 2086 2087 method_stack.peek().totalMethodRegisters = 0; 2088 method_stack.peek().methodParameterRegisters = 0; 2089 int accessFlags = 0; 2090 method_stack.peek().isStatic = false; 2091 2092 try { 2093 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:361:3: ( ^( I_METHOD method_name_and_prototype access_list ( ( registers_directive ) |) ordered_method_items catches parameters[$method_name_and_prototype.parameters] annotations ) ) 2094 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:362:5: ^( I_METHOD method_name_and_prototype access_list ( ( registers_directive ) |) ordered_method_items catches parameters[$method_name_and_prototype.parameters] annotations ) 2095 { 2096 I_METHOD70=(CommonTree)match(input,I_METHOD,FOLLOW_I_METHOD_in_method945); 2097 match(input, Token.DOWN, null); 2098 pushFollow(FOLLOW_method_name_and_prototype_in_method953); 2099 method_name_and_prototype67=method_name_and_prototype(); 2100 state._fsp--; 2101 2102 pushFollow(FOLLOW_access_list_in_method961); 2103 access_list66=access_list(); 2104 state._fsp--; 2105 2106 2107 accessFlags = access_list66; 2108 method_stack.peek().isStatic = AccessFlags.STATIC.isSet(accessFlags); 2109 method_stack.peek().methodParameterRegisters = 2110 MethodUtil.getParameterRegisterCount((method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).parameters:null), method_stack.peek().isStatic); 2111 2112 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:371:7: ( ( registers_directive ) |) 2113 int alt16=2; 2114 int LA16_0 = input.LA(1); 2115 if ( (LA16_0==I_LOCALS||LA16_0==I_REGISTERS) ) { 2116 alt16=1; 2117 } 2118 else if ( (LA16_0==I_ORDERED_METHOD_ITEMS) ) { 2119 alt16=2; 2120 } 2121 2122 else { 2123 NoViableAltException nvae = 2124 new NoViableAltException("", 16, 0, input); 2125 throw nvae; 2126 } 2127 2128 switch (alt16) { 2129 case 1 : 2130 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:372:9: ( registers_directive ) 2131 { 2132 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:372:9: ( registers_directive ) 2133 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:372:10: registers_directive 2134 { 2135 pushFollow(FOLLOW_registers_directive_in_method988); 2136 registers_directive68=registers_directive(); 2137 state._fsp--; 2138 2139 2140 if ((registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).isLocalsDirective:false)) { 2141 method_stack.peek().totalMethodRegisters = (registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).registers:0) + method_stack.peek().methodParameterRegisters; 2142 } else { 2143 method_stack.peek().totalMethodRegisters = (registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).registers:0); 2144 } 2145 2146 method_stack.peek().methodBuilder = new MethodImplementationBuilder(method_stack.peek().totalMethodRegisters); 2147 2148 2149 } 2150 2151 } 2152 break; 2153 case 2 : 2154 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:385:9: 2155 { 2156 2157 method_stack.peek().methodBuilder = new MethodImplementationBuilder(0); 2158 2159 } 2160 break; 2161 2162 } 2163 2164 pushFollow(FOLLOW_ordered_method_items_in_method1045); 2165 ordered_method_items(); 2166 state._fsp--; 2167 2168 pushFollow(FOLLOW_catches_in_method1053); 2169 catches69=catches(); 2170 state._fsp--; 2171 2172 pushFollow(FOLLOW_parameters_in_method1061); 2173 parameters((method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).parameters:null)); 2174 state._fsp--; 2175 2176 pushFollow(FOLLOW_annotations_in_method1070); 2177 annotations71=annotations(); 2178 state._fsp--; 2179 2180 match(input, Token.UP, null); 2181 2182 2183 MethodImplementation methodImplementation = null; 2184 List<BuilderTryBlock> tryBlocks = catches69; 2185 2186 boolean isAbstract = false; 2187 boolean isNative = false; 2188 2189 if ((accessFlags & AccessFlags.ABSTRACT.getValue()) != 0) { 2190 isAbstract = true; 2191 } else if ((accessFlags & AccessFlags.NATIVE.getValue()) != 0) { 2192 isNative = true; 2193 } 2194 2195 methodImplementation = method_stack.peek().methodBuilder.getMethodImplementation(); 2196 2197 if (Iterables.isEmpty(methodImplementation.getInstructions())) { 2198 if (!isAbstract && !isNative) { 2199 throw new SemanticException(input, I_METHOD70, "A non-abstract/non-native method must have at least 1 instruction"); 2200 } 2201 2202 String methodType; 2203 if (isAbstract) { 2204 methodType = "an abstract"; 2205 } else { 2206 methodType = "a native"; 2207 } 2208 2209 if ((registers_directive68!=null?((CommonTree)registers_directive68.start):null) != null) { 2210 if ((registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).isLocalsDirective:false)) { 2211 throw new SemanticException(input, (registers_directive68!=null?((CommonTree)registers_directive68.start):null), "A .locals directive is not valid in %s method", methodType); 2212 } else { 2213 throw new SemanticException(input, (registers_directive68!=null?((CommonTree)registers_directive68.start):null), "A .registers directive is not valid in %s method", methodType); 2214 } 2215 } 2216 2217 if (methodImplementation.getTryBlocks().size() > 0) { 2218 throw new SemanticException(input, I_METHOD70, "try/catch blocks cannot be present in %s method", methodType); 2219 } 2220 2221 if (!Iterables.isEmpty(methodImplementation.getDebugItems())) { 2222 throw new SemanticException(input, I_METHOD70, "debug directives cannot be present in %s method", methodType); 2223 } 2224 2225 methodImplementation = null; 2226 } else { 2227 if (isAbstract) { 2228 throw new SemanticException(input, I_METHOD70, "An abstract method cannot have any instructions"); 2229 } 2230 if (isNative) { 2231 throw new SemanticException(input, I_METHOD70, "A native method cannot have any instructions"); 2232 } 2233 2234 if ((registers_directive68!=null?((CommonTree)registers_directive68.start):null) == null) { 2235 throw new SemanticException(input, I_METHOD70, "A .registers or .locals directive must be present for a non-abstract/non-final method"); 2236 } 2237 2238 if (method_stack.peek().totalMethodRegisters < method_stack.peek().methodParameterRegisters) { 2239 throw new SemanticException(input, (registers_directive68!=null?((CommonTree)registers_directive68.start):null), "This method requires at least " + 2240 Integer.toString(method_stack.peek().methodParameterRegisters) + 2241 " registers, for the method parameters"); 2242 } 2243 } 2244 2245 ret = dexBuilder.internMethod( 2246 classType, 2247 (method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).name:null), 2248 (method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).parameters:null), 2249 (method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).returnType:null), 2250 accessFlags, 2251 annotations71, 2252 methodImplementation); 2253 2254 } 2255 2256 } 2257 catch (RecognitionException re) { 2258 reportError(re); 2259 recover(input,re); 2260 } 2261 finally { 2262 // do for sure before leaving 2263 method_stack.pop(); 2264 } 2265 return ret; 2266 } 2267 // $ANTLR end "method" 2268 2269 2270 public static class method_prototype_return extends TreeRuleReturnScope { 2271 public List<String> parameters; 2272 public String returnType; 2273 }; 2274 2275 2276 // $ANTLR start "method_prototype" 2277 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:467:1: method_prototype returns [List<String> parameters, String returnType] : ^( I_METHOD_PROTOTYPE ^( I_METHOD_RETURN_TYPE type_descriptor ) method_type_list ) ; method_prototype()2278 public final smaliTreeWalker.method_prototype_return method_prototype() throws RecognitionException { 2279 smaliTreeWalker.method_prototype_return retval = new smaliTreeWalker.method_prototype_return(); 2280 retval.start = input.LT(1); 2281 2282 String type_descriptor72 =null; 2283 List<String> method_type_list73 =null; 2284 2285 try { 2286 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:468:3: ( ^( I_METHOD_PROTOTYPE ^( I_METHOD_RETURN_TYPE type_descriptor ) method_type_list ) ) 2287 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:468:5: ^( I_METHOD_PROTOTYPE ^( I_METHOD_RETURN_TYPE type_descriptor ) method_type_list ) 2288 { 2289 match(input,I_METHOD_PROTOTYPE,FOLLOW_I_METHOD_PROTOTYPE_in_method_prototype1094); 2290 match(input, Token.DOWN, null); 2291 match(input,I_METHOD_RETURN_TYPE,FOLLOW_I_METHOD_RETURN_TYPE_in_method_prototype1097); 2292 match(input, Token.DOWN, null); 2293 pushFollow(FOLLOW_type_descriptor_in_method_prototype1099); 2294 type_descriptor72=type_descriptor(); 2295 state._fsp--; 2296 2297 match(input, Token.UP, null); 2298 2299 pushFollow(FOLLOW_method_type_list_in_method_prototype1102); 2300 method_type_list73=method_type_list(); 2301 state._fsp--; 2302 2303 match(input, Token.UP, null); 2304 2305 2306 retval.returnType = type_descriptor72; 2307 retval.parameters = method_type_list73; 2308 2309 } 2310 2311 } 2312 catch (RecognitionException re) { 2313 reportError(re); 2314 recover(input,re); 2315 } 2316 finally { 2317 // do for sure before leaving 2318 } 2319 return retval; 2320 } 2321 // $ANTLR end "method_prototype" 2322 2323 2324 public static class method_name_and_prototype_return extends TreeRuleReturnScope { 2325 public String name; 2326 public List<SmaliMethodParameter> parameters; 2327 public String returnType; 2328 }; 2329 2330 2331 // $ANTLR start "method_name_and_prototype" 2332 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:474:1: method_name_and_prototype returns [String name, List<SmaliMethodParameter> parameters, String returnType] : SIMPLE_NAME method_prototype ; method_name_and_prototype()2333 public final smaliTreeWalker.method_name_and_prototype_return method_name_and_prototype() throws RecognitionException { 2334 smaliTreeWalker.method_name_and_prototype_return retval = new smaliTreeWalker.method_name_and_prototype_return(); 2335 retval.start = input.LT(1); 2336 2337 CommonTree SIMPLE_NAME74=null; 2338 TreeRuleReturnScope method_prototype75 =null; 2339 2340 try { 2341 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:475:3: ( SIMPLE_NAME method_prototype ) 2342 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:475:5: SIMPLE_NAME method_prototype 2343 { 2344 SIMPLE_NAME74=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_method_name_and_prototype1120); 2345 pushFollow(FOLLOW_method_prototype_in_method_name_and_prototype1122); 2346 method_prototype75=method_prototype(); 2347 state._fsp--; 2348 2349 2350 retval.name = (SIMPLE_NAME74!=null?SIMPLE_NAME74.getText():null); 2351 retval.parameters = Lists.newArrayList(); 2352 2353 int paramRegister = 0; 2354 for (String type: (method_prototype75!=null?((smaliTreeWalker.method_prototype_return)method_prototype75).parameters:null)) { 2355 retval.parameters.add(new SmaliMethodParameter(paramRegister++, type)); 2356 char c = type.charAt(0); 2357 if (c == 'D' || c == 'J') { 2358 paramRegister++; 2359 } 2360 } 2361 retval.returnType = (method_prototype75!=null?((smaliTreeWalker.method_prototype_return)method_prototype75).returnType:null); 2362 2363 } 2364 2365 } 2366 catch (RecognitionException re) { 2367 reportError(re); 2368 recover(input,re); 2369 } 2370 finally { 2371 // do for sure before leaving 2372 } 2373 return retval; 2374 } 2375 // $ANTLR end "method_name_and_prototype" 2376 2377 2378 2379 // $ANTLR start "method_type_list" 2380 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:491:1: method_type_list returns [List<String> types] : ( nonvoid_type_descriptor )* ; method_type_list()2381 public final List<String> method_type_list() throws RecognitionException { 2382 List<String> types = null; 2383 2384 2385 TreeRuleReturnScope nonvoid_type_descriptor76 =null; 2386 2387 2388 types = Lists.newArrayList(); 2389 2390 try { 2391 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:496:3: ( ( nonvoid_type_descriptor )* ) 2392 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:496:5: ( nonvoid_type_descriptor )* 2393 { 2394 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:496:5: ( nonvoid_type_descriptor )* 2395 loop17: 2396 while (true) { 2397 int alt17=2; 2398 int LA17_0 = input.LA(1); 2399 if ( (LA17_0==ARRAY_DESCRIPTOR||LA17_0==CLASS_DESCRIPTOR||LA17_0==PRIMITIVE_TYPE) ) { 2400 alt17=1; 2401 } 2402 2403 switch (alt17) { 2404 case 1 : 2405 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:497:7: nonvoid_type_descriptor 2406 { 2407 pushFollow(FOLLOW_nonvoid_type_descriptor_in_method_type_list1156); 2408 nonvoid_type_descriptor76=nonvoid_type_descriptor(); 2409 state._fsp--; 2410 2411 2412 types.add((nonvoid_type_descriptor76!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor76).type:null)); 2413 2414 } 2415 break; 2416 2417 default : 2418 break loop17; 2419 } 2420 } 2421 2422 } 2423 2424 } 2425 catch (RecognitionException re) { 2426 reportError(re); 2427 recover(input,re); 2428 } 2429 finally { 2430 // do for sure before leaving 2431 } 2432 return types; 2433 } 2434 // $ANTLR end "method_type_list" 2435 2436 2437 2438 // $ANTLR start "method_reference" 2439 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:504:1: method_reference returns [ImmutableMethodReference methodReference] : ( reference_type_descriptor )? SIMPLE_NAME method_prototype ; method_reference()2440 public final ImmutableMethodReference method_reference() throws RecognitionException { 2441 ImmutableMethodReference methodReference = null; 2442 2443 2444 CommonTree SIMPLE_NAME78=null; 2445 TreeRuleReturnScope reference_type_descriptor77 =null; 2446 TreeRuleReturnScope method_prototype79 =null; 2447 2448 try { 2449 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:505:3: ( ( reference_type_descriptor )? SIMPLE_NAME method_prototype ) 2450 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:505:5: ( reference_type_descriptor )? SIMPLE_NAME method_prototype 2451 { 2452 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:505:5: ( reference_type_descriptor )? 2453 int alt18=2; 2454 int LA18_0 = input.LA(1); 2455 if ( (LA18_0==ARRAY_DESCRIPTOR||LA18_0==CLASS_DESCRIPTOR) ) { 2456 alt18=1; 2457 } 2458 switch (alt18) { 2459 case 1 : 2460 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:505:5: reference_type_descriptor 2461 { 2462 pushFollow(FOLLOW_reference_type_descriptor_in_method_reference1185); 2463 reference_type_descriptor77=reference_type_descriptor(); 2464 state._fsp--; 2465 2466 } 2467 break; 2468 2469 } 2470 2471 SIMPLE_NAME78=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_method_reference1188); 2472 pushFollow(FOLLOW_method_prototype_in_method_reference1190); 2473 method_prototype79=method_prototype(); 2474 state._fsp--; 2475 2476 2477 String type; 2478 if ((reference_type_descriptor77!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor77).type:null) == null) { 2479 type = classType; 2480 } else { 2481 type = (reference_type_descriptor77!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor77).type:null); 2482 } 2483 methodReference = new ImmutableMethodReference(type, (SIMPLE_NAME78!=null?SIMPLE_NAME78.getText():null), 2484 (method_prototype79!=null?((smaliTreeWalker.method_prototype_return)method_prototype79).parameters:null), (method_prototype79!=null?((smaliTreeWalker.method_prototype_return)method_prototype79).returnType:null)); 2485 2486 } 2487 2488 } 2489 catch (RecognitionException re) { 2490 reportError(re); 2491 recover(input,re); 2492 } 2493 finally { 2494 // do for sure before leaving 2495 } 2496 return methodReference; 2497 } 2498 // $ANTLR end "method_reference" 2499 2500 2501 2502 // $ANTLR start "field_reference" 2503 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:517:1: field_reference returns [ImmutableFieldReference fieldReference] : ( reference_type_descriptor )? SIMPLE_NAME nonvoid_type_descriptor ; field_reference()2504 public final ImmutableFieldReference field_reference() throws RecognitionException { 2505 ImmutableFieldReference fieldReference = null; 2506 2507 2508 CommonTree SIMPLE_NAME81=null; 2509 TreeRuleReturnScope reference_type_descriptor80 =null; 2510 TreeRuleReturnScope nonvoid_type_descriptor82 =null; 2511 2512 try { 2513 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:518:3: ( ( reference_type_descriptor )? SIMPLE_NAME nonvoid_type_descriptor ) 2514 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:518:5: ( reference_type_descriptor )? SIMPLE_NAME nonvoid_type_descriptor 2515 { 2516 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:518:5: ( reference_type_descriptor )? 2517 int alt19=2; 2518 int LA19_0 = input.LA(1); 2519 if ( (LA19_0==ARRAY_DESCRIPTOR||LA19_0==CLASS_DESCRIPTOR) ) { 2520 alt19=1; 2521 } 2522 switch (alt19) { 2523 case 1 : 2524 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:518:5: reference_type_descriptor 2525 { 2526 pushFollow(FOLLOW_reference_type_descriptor_in_field_reference1207); 2527 reference_type_descriptor80=reference_type_descriptor(); 2528 state._fsp--; 2529 2530 } 2531 break; 2532 2533 } 2534 2535 SIMPLE_NAME81=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_field_reference1210); 2536 pushFollow(FOLLOW_nonvoid_type_descriptor_in_field_reference1212); 2537 nonvoid_type_descriptor82=nonvoid_type_descriptor(); 2538 state._fsp--; 2539 2540 2541 String type; 2542 if ((reference_type_descriptor80!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor80).type:null) == null) { 2543 type = classType; 2544 } else { 2545 type = (reference_type_descriptor80!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor80).type:null); 2546 } 2547 fieldReference = new ImmutableFieldReference(type, (SIMPLE_NAME81!=null?SIMPLE_NAME81.getText():null), 2548 (nonvoid_type_descriptor82!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor82).type:null)); 2549 2550 } 2551 2552 } 2553 catch (RecognitionException re) { 2554 reportError(re); 2555 recover(input,re); 2556 } 2557 finally { 2558 // do for sure before leaving 2559 } 2560 return fieldReference; 2561 } 2562 // $ANTLR end "field_reference" 2563 2564 2565 public static class registers_directive_return extends TreeRuleReturnScope { 2566 public boolean isLocalsDirective; 2567 public int registers; 2568 }; 2569 2570 2571 // $ANTLR start "registers_directive" 2572 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:530:1: registers_directive returns [boolean isLocalsDirective, int registers] : ^( ( I_REGISTERS | I_LOCALS ) short_integral_literal ) ; registers_directive()2573 public final smaliTreeWalker.registers_directive_return registers_directive() throws RecognitionException { 2574 smaliTreeWalker.registers_directive_return retval = new smaliTreeWalker.registers_directive_return(); 2575 retval.start = input.LT(1); 2576 2577 short short_integral_literal83 =0; 2578 2579 try { 2580 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:531:3: ( ^( ( I_REGISTERS | I_LOCALS ) short_integral_literal ) ) 2581 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:531:5: ^( ( I_REGISTERS | I_LOCALS ) short_integral_literal ) 2582 { 2583 retval.registers = 0; 2584 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:532:7: ( I_REGISTERS | I_LOCALS ) 2585 int alt20=2; 2586 int LA20_0 = input.LA(1); 2587 if ( (LA20_0==I_REGISTERS) ) { 2588 alt20=1; 2589 } 2590 else if ( (LA20_0==I_LOCALS) ) { 2591 alt20=2; 2592 } 2593 2594 else { 2595 NoViableAltException nvae = 2596 new NoViableAltException("", 20, 0, input); 2597 throw nvae; 2598 } 2599 2600 switch (alt20) { 2601 case 1 : 2602 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:532:9: I_REGISTERS 2603 { 2604 match(input,I_REGISTERS,FOLLOW_I_REGISTERS_in_registers_directive1238); 2605 retval.isLocalsDirective = false; 2606 } 2607 break; 2608 case 2 : 2609 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:533:9: I_LOCALS 2610 { 2611 match(input,I_LOCALS,FOLLOW_I_LOCALS_in_registers_directive1250); 2612 retval.isLocalsDirective = true; 2613 } 2614 break; 2615 2616 } 2617 2618 match(input, Token.DOWN, null); 2619 pushFollow(FOLLOW_short_integral_literal_in_registers_directive1268); 2620 short_integral_literal83=short_integral_literal(); 2621 state._fsp--; 2622 2623 retval.registers = short_integral_literal83; 2624 match(input, Token.UP, null); 2625 2626 } 2627 2628 } 2629 catch (RecognitionException re) { 2630 reportError(re); 2631 recover(input,re); 2632 } 2633 finally { 2634 // do for sure before leaving 2635 } 2636 return retval; 2637 } 2638 // $ANTLR end "registers_directive" 2639 2640 2641 2642 // $ANTLR start "label_def" 2643 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:538:1: label_def : ^( I_LABEL SIMPLE_NAME ) ; label_def()2644 public final void label_def() throws RecognitionException { 2645 CommonTree SIMPLE_NAME84=null; 2646 2647 try { 2648 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:539:3: ( ^( I_LABEL SIMPLE_NAME ) ) 2649 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:539:5: ^( I_LABEL SIMPLE_NAME ) 2650 { 2651 match(input,I_LABEL,FOLLOW_I_LABEL_in_label_def1288); 2652 match(input, Token.DOWN, null); 2653 SIMPLE_NAME84=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_label_def1290); 2654 match(input, Token.UP, null); 2655 2656 2657 method_stack.peek().methodBuilder.addLabel((SIMPLE_NAME84!=null?SIMPLE_NAME84.getText():null)); 2658 2659 } 2660 2661 } 2662 catch (RecognitionException re) { 2663 reportError(re); 2664 recover(input,re); 2665 } 2666 finally { 2667 // do for sure before leaving 2668 } 2669 } 2670 // $ANTLR end "label_def" 2671 2672 2673 2674 // $ANTLR start "catches" 2675 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:544:1: catches returns [List<BuilderTryBlock> tryBlocks] : ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ; catches()2676 public final List<BuilderTryBlock> catches() throws RecognitionException { 2677 List<BuilderTryBlock> tryBlocks = null; 2678 2679 2680 tryBlocks = Lists.newArrayList(); 2681 try { 2682 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:546:3: ( ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ) 2683 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:546:5: ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) 2684 { 2685 match(input,I_CATCHES,FOLLOW_I_CATCHES_in_catches1316); 2686 if ( input.LA(1)==Token.DOWN ) { 2687 match(input, Token.DOWN, null); 2688 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:546:17: ( catch_directive )* 2689 loop21: 2690 while (true) { 2691 int alt21=2; 2692 int LA21_0 = input.LA(1); 2693 if ( (LA21_0==I_CATCH) ) { 2694 alt21=1; 2695 } 2696 2697 switch (alt21) { 2698 case 1 : 2699 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:546:17: catch_directive 2700 { 2701 pushFollow(FOLLOW_catch_directive_in_catches1318); 2702 catch_directive(); 2703 state._fsp--; 2704 2705 } 2706 break; 2707 2708 default : 2709 break loop21; 2710 } 2711 } 2712 2713 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:546:34: ( catchall_directive )* 2714 loop22: 2715 while (true) { 2716 int alt22=2; 2717 int LA22_0 = input.LA(1); 2718 if ( (LA22_0==I_CATCHALL) ) { 2719 alt22=1; 2720 } 2721 2722 switch (alt22) { 2723 case 1 : 2724 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:546:34: catchall_directive 2725 { 2726 pushFollow(FOLLOW_catchall_directive_in_catches1321); 2727 catchall_directive(); 2728 state._fsp--; 2729 2730 } 2731 break; 2732 2733 default : 2734 break loop22; 2735 } 2736 } 2737 2738 match(input, Token.UP, null); 2739 } 2740 2741 } 2742 2743 } 2744 catch (RecognitionException re) { 2745 reportError(re); 2746 recover(input,re); 2747 } 2748 finally { 2749 // do for sure before leaving 2750 } 2751 return tryBlocks; 2752 } 2753 // $ANTLR end "catches" 2754 2755 2756 2757 // $ANTLR start "catch_directive" 2758 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:548:1: catch_directive : ^( I_CATCH nonvoid_type_descriptor from= label_ref to= label_ref using= label_ref ) ; catch_directive()2759 public final void catch_directive() throws RecognitionException { 2760 Label from =null; 2761 Label to =null; 2762 Label using =null; 2763 TreeRuleReturnScope nonvoid_type_descriptor85 =null; 2764 2765 try { 2766 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:549:3: ( ^( I_CATCH nonvoid_type_descriptor from= label_ref to= label_ref using= label_ref ) ) 2767 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:549:5: ^( I_CATCH nonvoid_type_descriptor from= label_ref to= label_ref using= label_ref ) 2768 { 2769 match(input,I_CATCH,FOLLOW_I_CATCH_in_catch_directive1334); 2770 match(input, Token.DOWN, null); 2771 pushFollow(FOLLOW_nonvoid_type_descriptor_in_catch_directive1336); 2772 nonvoid_type_descriptor85=nonvoid_type_descriptor(); 2773 state._fsp--; 2774 2775 pushFollow(FOLLOW_label_ref_in_catch_directive1340); 2776 from=label_ref(); 2777 state._fsp--; 2778 2779 pushFollow(FOLLOW_label_ref_in_catch_directive1344); 2780 to=label_ref(); 2781 state._fsp--; 2782 2783 pushFollow(FOLLOW_label_ref_in_catch_directive1348); 2784 using=label_ref(); 2785 state._fsp--; 2786 2787 match(input, Token.UP, null); 2788 2789 2790 method_stack.peek().methodBuilder.addCatch(dexBuilder.internTypeReference((nonvoid_type_descriptor85!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor85).type:null)), 2791 from, to, using); 2792 2793 } 2794 2795 } 2796 catch (RecognitionException re) { 2797 reportError(re); 2798 recover(input,re); 2799 } 2800 finally { 2801 // do for sure before leaving 2802 } 2803 } 2804 // $ANTLR end "catch_directive" 2805 2806 2807 2808 // $ANTLR start "catchall_directive" 2809 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:555:1: catchall_directive : ^( I_CATCHALL from= label_ref to= label_ref using= label_ref ) ; catchall_directive()2810 public final void catchall_directive() throws RecognitionException { 2811 Label from =null; 2812 Label to =null; 2813 Label using =null; 2814 2815 try { 2816 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:556:3: ( ^( I_CATCHALL from= label_ref to= label_ref using= label_ref ) ) 2817 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:556:5: ^( I_CATCHALL from= label_ref to= label_ref using= label_ref ) 2818 { 2819 match(input,I_CATCHALL,FOLLOW_I_CATCHALL_in_catchall_directive1364); 2820 match(input, Token.DOWN, null); 2821 pushFollow(FOLLOW_label_ref_in_catchall_directive1368); 2822 from=label_ref(); 2823 state._fsp--; 2824 2825 pushFollow(FOLLOW_label_ref_in_catchall_directive1372); 2826 to=label_ref(); 2827 state._fsp--; 2828 2829 pushFollow(FOLLOW_label_ref_in_catchall_directive1376); 2830 using=label_ref(); 2831 state._fsp--; 2832 2833 match(input, Token.UP, null); 2834 2835 2836 method_stack.peek().methodBuilder.addCatch(from, to, using); 2837 2838 } 2839 2840 } 2841 catch (RecognitionException re) { 2842 reportError(re); 2843 recover(input,re); 2844 } 2845 finally { 2846 // do for sure before leaving 2847 } 2848 } 2849 // $ANTLR end "catchall_directive" 2850 2851 2852 2853 // $ANTLR start "parameters" 2854 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:561:1: parameters[List<SmaliMethodParameter> parameters] : ^( I_PARAMETERS ( parameter[parameters] )* ) ; parameters(List<SmaliMethodParameter> parameters)2855 public final void parameters(List<SmaliMethodParameter> parameters) throws RecognitionException { 2856 try { 2857 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:562:3: ( ^( I_PARAMETERS ( parameter[parameters] )* ) ) 2858 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:562:5: ^( I_PARAMETERS ( parameter[parameters] )* ) 2859 { 2860 match(input,I_PARAMETERS,FOLLOW_I_PARAMETERS_in_parameters1393); 2861 if ( input.LA(1)==Token.DOWN ) { 2862 match(input, Token.DOWN, null); 2863 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:562:20: ( parameter[parameters] )* 2864 loop23: 2865 while (true) { 2866 int alt23=2; 2867 int LA23_0 = input.LA(1); 2868 if ( (LA23_0==I_PARAMETER) ) { 2869 alt23=1; 2870 } 2871 2872 switch (alt23) { 2873 case 1 : 2874 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:562:21: parameter[parameters] 2875 { 2876 pushFollow(FOLLOW_parameter_in_parameters1396); 2877 parameter(parameters); 2878 state._fsp--; 2879 2880 } 2881 break; 2882 2883 default : 2884 break loop23; 2885 } 2886 } 2887 2888 match(input, Token.UP, null); 2889 } 2890 2891 } 2892 2893 } 2894 catch (RecognitionException re) { 2895 reportError(re); 2896 recover(input,re); 2897 } 2898 finally { 2899 // do for sure before leaving 2900 } 2901 } 2902 // $ANTLR end "parameters" 2903 2904 2905 2906 // $ANTLR start "parameter" 2907 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:564:1: parameter[List<SmaliMethodParameter> parameters] : ^( I_PARAMETER REGISTER ( string_literal )? annotations ) ; parameter(List<SmaliMethodParameter> parameters)2908 public final void parameter(List<SmaliMethodParameter> parameters) throws RecognitionException { 2909 CommonTree REGISTER86=null; 2910 CommonTree I_PARAMETER87=null; 2911 String string_literal88 =null; 2912 Set<Annotation> annotations89 =null; 2913 2914 try { 2915 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:565:3: ( ^( I_PARAMETER REGISTER ( string_literal )? annotations ) ) 2916 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:565:5: ^( I_PARAMETER REGISTER ( string_literal )? annotations ) 2917 { 2918 I_PARAMETER87=(CommonTree)match(input,I_PARAMETER,FOLLOW_I_PARAMETER_in_parameter1412); 2919 match(input, Token.DOWN, null); 2920 REGISTER86=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_parameter1414); 2921 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:565:28: ( string_literal )? 2922 int alt24=2; 2923 int LA24_0 = input.LA(1); 2924 if ( (LA24_0==STRING_LITERAL) ) { 2925 alt24=1; 2926 } 2927 switch (alt24) { 2928 case 1 : 2929 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:565:28: string_literal 2930 { 2931 pushFollow(FOLLOW_string_literal_in_parameter1416); 2932 string_literal88=string_literal(); 2933 state._fsp--; 2934 2935 } 2936 break; 2937 2938 } 2939 2940 pushFollow(FOLLOW_annotations_in_parameter1419); 2941 annotations89=annotations(); 2942 state._fsp--; 2943 2944 match(input, Token.UP, null); 2945 2946 2947 final int registerNumber = parseRegister_short((REGISTER86!=null?REGISTER86.getText():null)); 2948 int totalMethodRegisters = method_stack.peek().totalMethodRegisters; 2949 int methodParameterRegisters = method_stack.peek().methodParameterRegisters; 2950 2951 if (registerNumber >= totalMethodRegisters) { 2952 throw new SemanticException(input, I_PARAMETER87, "Register %s is larger than the maximum register v%d " + 2953 "for this method", (REGISTER86!=null?REGISTER86.getText():null), totalMethodRegisters-1); 2954 } 2955 final int indexGuess = registerNumber - (totalMethodRegisters - methodParameterRegisters) - (method_stack.peek().isStatic?0:1); 2956 2957 if (indexGuess < 0) { 2958 throw new SemanticException(input, I_PARAMETER87, "Register %s is not a parameter register.", 2959 (REGISTER86!=null?REGISTER86.getText():null)); 2960 } 2961 2962 int parameterIndex = LinearSearch.linearSearch(parameters, SmaliMethodParameter.COMPARATOR, 2963 new WithRegister() { public int getRegister() { return indexGuess; } }, 2964 indexGuess); 2965 2966 if (parameterIndex < 0) { 2967 throw new SemanticException(input, I_PARAMETER87, "Register %s is the second half of a wide parameter.", 2968 (REGISTER86!=null?REGISTER86.getText():null)); 2969 } 2970 2971 SmaliMethodParameter methodParameter = parameters.get(parameterIndex); 2972 methodParameter.name = string_literal88; 2973 if (annotations89 != null && annotations89.size() > 0) { 2974 methodParameter.annotations = annotations89; 2975 } 2976 2977 } 2978 2979 } 2980 catch (RecognitionException re) { 2981 reportError(re); 2982 recover(input,re); 2983 } 2984 finally { 2985 // do for sure before leaving 2986 } 2987 } 2988 // $ANTLR end "parameter" 2989 2990 2991 2992 // $ANTLR start "debug_directive" 2993 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:598:1: debug_directive : ( line | local | end_local | restart_local | prologue | epilogue | source ); debug_directive()2994 public final void debug_directive() throws RecognitionException { 2995 try { 2996 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:599:3: ( line | local | end_local | restart_local | prologue | epilogue | source ) 2997 int alt25=7; 2998 switch ( input.LA(1) ) { 2999 case I_LINE: 3000 { 3001 alt25=1; 3002 } 3003 break; 3004 case I_LOCAL: 3005 { 3006 alt25=2; 3007 } 3008 break; 3009 case I_END_LOCAL: 3010 { 3011 alt25=3; 3012 } 3013 break; 3014 case I_RESTART_LOCAL: 3015 { 3016 alt25=4; 3017 } 3018 break; 3019 case I_PROLOGUE: 3020 { 3021 alt25=5; 3022 } 3023 break; 3024 case I_EPILOGUE: 3025 { 3026 alt25=6; 3027 } 3028 break; 3029 case I_SOURCE: 3030 { 3031 alt25=7; 3032 } 3033 break; 3034 default: 3035 NoViableAltException nvae = 3036 new NoViableAltException("", 25, 0, input); 3037 throw nvae; 3038 } 3039 switch (alt25) { 3040 case 1 : 3041 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:599:5: line 3042 { 3043 pushFollow(FOLLOW_line_in_debug_directive1436); 3044 line(); 3045 state._fsp--; 3046 3047 } 3048 break; 3049 case 2 : 3050 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:600:5: local 3051 { 3052 pushFollow(FOLLOW_local_in_debug_directive1442); 3053 local(); 3054 state._fsp--; 3055 3056 } 3057 break; 3058 case 3 : 3059 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:601:5: end_local 3060 { 3061 pushFollow(FOLLOW_end_local_in_debug_directive1448); 3062 end_local(); 3063 state._fsp--; 3064 3065 } 3066 break; 3067 case 4 : 3068 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:602:5: restart_local 3069 { 3070 pushFollow(FOLLOW_restart_local_in_debug_directive1454); 3071 restart_local(); 3072 state._fsp--; 3073 3074 } 3075 break; 3076 case 5 : 3077 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:603:5: prologue 3078 { 3079 pushFollow(FOLLOW_prologue_in_debug_directive1460); 3080 prologue(); 3081 state._fsp--; 3082 3083 } 3084 break; 3085 case 6 : 3086 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:604:5: epilogue 3087 { 3088 pushFollow(FOLLOW_epilogue_in_debug_directive1466); 3089 epilogue(); 3090 state._fsp--; 3091 3092 } 3093 break; 3094 case 7 : 3095 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:605:5: source 3096 { 3097 pushFollow(FOLLOW_source_in_debug_directive1472); 3098 source(); 3099 state._fsp--; 3100 3101 } 3102 break; 3103 3104 } 3105 } 3106 catch (RecognitionException re) { 3107 reportError(re); 3108 recover(input,re); 3109 } 3110 finally { 3111 // do for sure before leaving 3112 } 3113 } 3114 // $ANTLR end "debug_directive" 3115 3116 3117 3118 // $ANTLR start "line" 3119 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:607:1: line : ^( I_LINE integral_literal ) ; line()3120 public final void line() throws RecognitionException { 3121 int integral_literal90 =0; 3122 3123 try { 3124 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:608:3: ( ^( I_LINE integral_literal ) ) 3125 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:608:5: ^( I_LINE integral_literal ) 3126 { 3127 match(input,I_LINE,FOLLOW_I_LINE_in_line1483); 3128 match(input, Token.DOWN, null); 3129 pushFollow(FOLLOW_integral_literal_in_line1485); 3130 integral_literal90=integral_literal(); 3131 state._fsp--; 3132 3133 match(input, Token.UP, null); 3134 3135 3136 method_stack.peek().methodBuilder.addLineNumber(integral_literal90); 3137 3138 } 3139 3140 } 3141 catch (RecognitionException re) { 3142 reportError(re); 3143 recover(input,re); 3144 } 3145 finally { 3146 // do for sure before leaving 3147 } 3148 } 3149 // $ANTLR end "line" 3150 3151 3152 3153 // $ANTLR start "local" 3154 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:613:1: local : ^( I_LOCAL REGISTER ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? ) ; local()3155 public final void local() throws RecognitionException { 3156 CommonTree REGISTER91=null; 3157 String name =null; 3158 String signature =null; 3159 TreeRuleReturnScope nonvoid_type_descriptor92 =null; 3160 3161 try { 3162 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:3: ( ^( I_LOCAL REGISTER ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? ) ) 3163 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:5: ^( I_LOCAL REGISTER ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? ) 3164 { 3165 match(input,I_LOCAL,FOLLOW_I_LOCAL_in_local1503); 3166 match(input, Token.DOWN, null); 3167 REGISTER91=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_local1505); 3168 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:24: ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? 3169 int alt29=2; 3170 int LA29_0 = input.LA(1); 3171 if ( (LA29_0==NULL_LITERAL||LA29_0==STRING_LITERAL) ) { 3172 alt29=1; 3173 } 3174 switch (alt29) { 3175 case 1 : 3176 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:25: ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? 3177 { 3178 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:25: ( NULL_LITERAL |name= string_literal ) 3179 int alt26=2; 3180 int LA26_0 = input.LA(1); 3181 if ( (LA26_0==NULL_LITERAL) ) { 3182 alt26=1; 3183 } 3184 else if ( (LA26_0==STRING_LITERAL) ) { 3185 alt26=2; 3186 } 3187 3188 else { 3189 NoViableAltException nvae = 3190 new NoViableAltException("", 26, 0, input); 3191 throw nvae; 3192 } 3193 3194 switch (alt26) { 3195 case 1 : 3196 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:26: NULL_LITERAL 3197 { 3198 match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_local1509); 3199 } 3200 break; 3201 case 2 : 3202 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:41: name= string_literal 3203 { 3204 pushFollow(FOLLOW_string_literal_in_local1515); 3205 name=string_literal(); 3206 state._fsp--; 3207 3208 } 3209 break; 3210 3211 } 3212 3213 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:62: ( nonvoid_type_descriptor )? 3214 int alt27=2; 3215 int LA27_0 = input.LA(1); 3216 if ( (LA27_0==ARRAY_DESCRIPTOR||LA27_0==CLASS_DESCRIPTOR||LA27_0==PRIMITIVE_TYPE) ) { 3217 alt27=1; 3218 } 3219 switch (alt27) { 3220 case 1 : 3221 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:62: nonvoid_type_descriptor 3222 { 3223 pushFollow(FOLLOW_nonvoid_type_descriptor_in_local1518); 3224 nonvoid_type_descriptor92=nonvoid_type_descriptor(); 3225 state._fsp--; 3226 3227 } 3228 break; 3229 3230 } 3231 3232 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:96: (signature= string_literal )? 3233 int alt28=2; 3234 int LA28_0 = input.LA(1); 3235 if ( (LA28_0==STRING_LITERAL) ) { 3236 alt28=1; 3237 } 3238 switch (alt28) { 3239 case 1 : 3240 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:614:96: signature= string_literal 3241 { 3242 pushFollow(FOLLOW_string_literal_in_local1523); 3243 signature=string_literal(); 3244 state._fsp--; 3245 3246 } 3247 break; 3248 3249 } 3250 3251 } 3252 break; 3253 3254 } 3255 3256 match(input, Token.UP, null); 3257 3258 3259 int registerNumber = parseRegister_short((REGISTER91!=null?REGISTER91.getText():null)); 3260 method_stack.peek().methodBuilder.addStartLocal(registerNumber, 3261 dexBuilder.internNullableStringReference(name), 3262 dexBuilder.internNullableTypeReference((nonvoid_type_descriptor92!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor92).type:null)), 3263 dexBuilder.internNullableStringReference(signature)); 3264 3265 } 3266 3267 } 3268 catch (RecognitionException re) { 3269 reportError(re); 3270 recover(input,re); 3271 } 3272 finally { 3273 // do for sure before leaving 3274 } 3275 } 3276 // $ANTLR end "local" 3277 3278 3279 3280 // $ANTLR start "end_local" 3281 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:623:1: end_local : ^( I_END_LOCAL REGISTER ) ; end_local()3282 public final void end_local() throws RecognitionException { 3283 CommonTree REGISTER93=null; 3284 3285 try { 3286 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:624:3: ( ^( I_END_LOCAL REGISTER ) ) 3287 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:624:5: ^( I_END_LOCAL REGISTER ) 3288 { 3289 match(input,I_END_LOCAL,FOLLOW_I_END_LOCAL_in_end_local1544); 3290 match(input, Token.DOWN, null); 3291 REGISTER93=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_end_local1546); 3292 match(input, Token.UP, null); 3293 3294 3295 int registerNumber = parseRegister_short((REGISTER93!=null?REGISTER93.getText():null)); 3296 method_stack.peek().methodBuilder.addEndLocal(registerNumber); 3297 3298 } 3299 3300 } 3301 catch (RecognitionException re) { 3302 reportError(re); 3303 recover(input,re); 3304 } 3305 finally { 3306 // do for sure before leaving 3307 } 3308 } 3309 // $ANTLR end "end_local" 3310 3311 3312 3313 // $ANTLR start "restart_local" 3314 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:630:1: restart_local : ^( I_RESTART_LOCAL REGISTER ) ; restart_local()3315 public final void restart_local() throws RecognitionException { 3316 CommonTree REGISTER94=null; 3317 3318 try { 3319 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:631:3: ( ^( I_RESTART_LOCAL REGISTER ) ) 3320 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:631:5: ^( I_RESTART_LOCAL REGISTER ) 3321 { 3322 match(input,I_RESTART_LOCAL,FOLLOW_I_RESTART_LOCAL_in_restart_local1564); 3323 match(input, Token.DOWN, null); 3324 REGISTER94=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_restart_local1566); 3325 match(input, Token.UP, null); 3326 3327 3328 int registerNumber = parseRegister_short((REGISTER94!=null?REGISTER94.getText():null)); 3329 method_stack.peek().methodBuilder.addRestartLocal(registerNumber); 3330 3331 } 3332 3333 } 3334 catch (RecognitionException re) { 3335 reportError(re); 3336 recover(input,re); 3337 } 3338 finally { 3339 // do for sure before leaving 3340 } 3341 } 3342 // $ANTLR end "restart_local" 3343 3344 3345 3346 // $ANTLR start "prologue" 3347 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:637:1: prologue : I_PROLOGUE ; prologue()3348 public final void prologue() throws RecognitionException { 3349 try { 3350 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:638:3: ( I_PROLOGUE ) 3351 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:638:5: I_PROLOGUE 3352 { 3353 match(input,I_PROLOGUE,FOLLOW_I_PROLOGUE_in_prologue1583); 3354 3355 method_stack.peek().methodBuilder.addPrologue(); 3356 3357 } 3358 3359 } 3360 catch (RecognitionException re) { 3361 reportError(re); 3362 recover(input,re); 3363 } 3364 finally { 3365 // do for sure before leaving 3366 } 3367 } 3368 // $ANTLR end "prologue" 3369 3370 3371 3372 // $ANTLR start "epilogue" 3373 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:643:1: epilogue : I_EPILOGUE ; epilogue()3374 public final void epilogue() throws RecognitionException { 3375 try { 3376 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:644:3: ( I_EPILOGUE ) 3377 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:644:5: I_EPILOGUE 3378 { 3379 match(input,I_EPILOGUE,FOLLOW_I_EPILOGUE_in_epilogue1599); 3380 3381 method_stack.peek().methodBuilder.addEpilogue(); 3382 3383 } 3384 3385 } 3386 catch (RecognitionException re) { 3387 reportError(re); 3388 recover(input,re); 3389 } 3390 finally { 3391 // do for sure before leaving 3392 } 3393 } 3394 // $ANTLR end "epilogue" 3395 3396 3397 3398 // $ANTLR start "source" 3399 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:649:1: source : ^( I_SOURCE ( string_literal )? ) ; source()3400 public final void source() throws RecognitionException { 3401 String string_literal95 =null; 3402 3403 try { 3404 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:650:3: ( ^( I_SOURCE ( string_literal )? ) ) 3405 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:650:5: ^( I_SOURCE ( string_literal )? ) 3406 { 3407 match(input,I_SOURCE,FOLLOW_I_SOURCE_in_source1616); 3408 if ( input.LA(1)==Token.DOWN ) { 3409 match(input, Token.DOWN, null); 3410 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:650:16: ( string_literal )? 3411 int alt30=2; 3412 int LA30_0 = input.LA(1); 3413 if ( (LA30_0==STRING_LITERAL) ) { 3414 alt30=1; 3415 } 3416 switch (alt30) { 3417 case 1 : 3418 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:650:16: string_literal 3419 { 3420 pushFollow(FOLLOW_string_literal_in_source1618); 3421 string_literal95=string_literal(); 3422 state._fsp--; 3423 3424 } 3425 break; 3426 3427 } 3428 3429 match(input, Token.UP, null); 3430 } 3431 3432 3433 method_stack.peek().methodBuilder.addSetSourceFile(dexBuilder.internNullableStringReference(string_literal95)); 3434 3435 } 3436 3437 } 3438 catch (RecognitionException re) { 3439 reportError(re); 3440 recover(input,re); 3441 } 3442 finally { 3443 // do for sure before leaving 3444 } 3445 } 3446 // $ANTLR end "source" 3447 3448 3449 3450 // $ANTLR start "ordered_method_items" 3451 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:655:1: ordered_method_items : ^( I_ORDERED_METHOD_ITEMS ( label_def | instruction | debug_directive )* ) ; ordered_method_items()3452 public final void ordered_method_items() throws RecognitionException { 3453 try { 3454 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:656:3: ( ^( I_ORDERED_METHOD_ITEMS ( label_def | instruction | debug_directive )* ) ) 3455 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:656:5: ^( I_ORDERED_METHOD_ITEMS ( label_def | instruction | debug_directive )* ) 3456 { 3457 match(input,I_ORDERED_METHOD_ITEMS,FOLLOW_I_ORDERED_METHOD_ITEMS_in_ordered_method_items1637); 3458 if ( input.LA(1)==Token.DOWN ) { 3459 match(input, Token.DOWN, null); 3460 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:656:30: ( label_def | instruction | debug_directive )* 3461 loop31: 3462 while (true) { 3463 int alt31=4; 3464 switch ( input.LA(1) ) { 3465 case I_LABEL: 3466 { 3467 alt31=1; 3468 } 3469 break; 3470 case I_STATEMENT_ARRAY_DATA: 3471 case I_STATEMENT_FORMAT10t: 3472 case I_STATEMENT_FORMAT10x: 3473 case I_STATEMENT_FORMAT11n: 3474 case I_STATEMENT_FORMAT11x: 3475 case I_STATEMENT_FORMAT12x: 3476 case I_STATEMENT_FORMAT20bc: 3477 case I_STATEMENT_FORMAT20t: 3478 case I_STATEMENT_FORMAT21c_FIELD: 3479 case I_STATEMENT_FORMAT21c_STRING: 3480 case I_STATEMENT_FORMAT21c_TYPE: 3481 case I_STATEMENT_FORMAT21ih: 3482 case I_STATEMENT_FORMAT21lh: 3483 case I_STATEMENT_FORMAT21s: 3484 case I_STATEMENT_FORMAT21t: 3485 case I_STATEMENT_FORMAT22b: 3486 case I_STATEMENT_FORMAT22c_FIELD: 3487 case I_STATEMENT_FORMAT22c_TYPE: 3488 case I_STATEMENT_FORMAT22s: 3489 case I_STATEMENT_FORMAT22t: 3490 case I_STATEMENT_FORMAT22x: 3491 case I_STATEMENT_FORMAT23x: 3492 case I_STATEMENT_FORMAT30t: 3493 case I_STATEMENT_FORMAT31c: 3494 case I_STATEMENT_FORMAT31i: 3495 case I_STATEMENT_FORMAT31t: 3496 case I_STATEMENT_FORMAT32x: 3497 case I_STATEMENT_FORMAT35c_METHOD: 3498 case I_STATEMENT_FORMAT35c_TYPE: 3499 case I_STATEMENT_FORMAT3rc_METHOD: 3500 case I_STATEMENT_FORMAT3rc_TYPE: 3501 case I_STATEMENT_FORMAT51l: 3502 case I_STATEMENT_PACKED_SWITCH: 3503 case I_STATEMENT_SPARSE_SWITCH: 3504 { 3505 alt31=2; 3506 } 3507 break; 3508 case I_END_LOCAL: 3509 case I_EPILOGUE: 3510 case I_LINE: 3511 case I_LOCAL: 3512 case I_PROLOGUE: 3513 case I_RESTART_LOCAL: 3514 case I_SOURCE: 3515 { 3516 alt31=3; 3517 } 3518 break; 3519 } 3520 switch (alt31) { 3521 case 1 : 3522 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:656:31: label_def 3523 { 3524 pushFollow(FOLLOW_label_def_in_ordered_method_items1640); 3525 label_def(); 3526 state._fsp--; 3527 3528 } 3529 break; 3530 case 2 : 3531 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:656:43: instruction 3532 { 3533 pushFollow(FOLLOW_instruction_in_ordered_method_items1644); 3534 instruction(); 3535 state._fsp--; 3536 3537 } 3538 break; 3539 case 3 : 3540 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:656:57: debug_directive 3541 { 3542 pushFollow(FOLLOW_debug_directive_in_ordered_method_items1648); 3543 debug_directive(); 3544 state._fsp--; 3545 3546 } 3547 break; 3548 3549 default : 3550 break loop31; 3551 } 3552 } 3553 3554 match(input, Token.UP, null); 3555 } 3556 3557 } 3558 3559 } 3560 catch (RecognitionException re) { 3561 reportError(re); 3562 recover(input,re); 3563 } 3564 finally { 3565 // do for sure before leaving 3566 } 3567 } 3568 // $ANTLR end "ordered_method_items" 3569 3570 3571 3572 // $ANTLR start "label_ref" 3573 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:658:1: label_ref returns [Label label] : SIMPLE_NAME ; label_ref()3574 public final Label label_ref() throws RecognitionException { 3575 Label label = null; 3576 3577 3578 CommonTree SIMPLE_NAME96=null; 3579 3580 try { 3581 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:659:3: ( SIMPLE_NAME ) 3582 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:659:5: SIMPLE_NAME 3583 { 3584 SIMPLE_NAME96=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_label_ref1664); 3585 label = method_stack.peek().methodBuilder.getLabel((SIMPLE_NAME96!=null?SIMPLE_NAME96.getText():null)); 3586 } 3587 3588 } 3589 catch (RecognitionException re) { 3590 reportError(re); 3591 recover(input,re); 3592 } 3593 finally { 3594 // do for sure before leaving 3595 } 3596 return label; 3597 } 3598 // $ANTLR end "label_ref" 3599 3600 3601 public static class register_list_return extends TreeRuleReturnScope { 3602 public byte[] registers; 3603 public byte registerCount; 3604 }; 3605 3606 3607 // $ANTLR start "register_list" 3608 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:661:1: register_list returns [byte[] registers, byte registerCount] : ^( I_REGISTER_LIST ( REGISTER )* ) ; register_list()3609 public final smaliTreeWalker.register_list_return register_list() throws RecognitionException { 3610 smaliTreeWalker.register_list_return retval = new smaliTreeWalker.register_list_return(); 3611 retval.start = input.LT(1); 3612 3613 CommonTree I_REGISTER_LIST97=null; 3614 CommonTree REGISTER98=null; 3615 3616 3617 retval.registers = new byte[5]; 3618 retval.registerCount = 0; 3619 3620 try { 3621 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:667:3: ( ^( I_REGISTER_LIST ( REGISTER )* ) ) 3622 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:667:5: ^( I_REGISTER_LIST ( REGISTER )* ) 3623 { 3624 I_REGISTER_LIST97=(CommonTree)match(input,I_REGISTER_LIST,FOLLOW_I_REGISTER_LIST_in_register_list1689); 3625 if ( input.LA(1)==Token.DOWN ) { 3626 match(input, Token.DOWN, null); 3627 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:668:7: ( REGISTER )* 3628 loop32: 3629 while (true) { 3630 int alt32=2; 3631 int LA32_0 = input.LA(1); 3632 if ( (LA32_0==REGISTER) ) { 3633 alt32=1; 3634 } 3635 3636 switch (alt32) { 3637 case 1 : 3638 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:668:8: REGISTER 3639 { 3640 REGISTER98=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_list1698); 3641 3642 if (retval.registerCount == 5) { 3643 throw new SemanticException(input, I_REGISTER_LIST97, "A list of registers can only have a maximum of 5 " + 3644 "registers. Use the <op>/range alternate opcode instead."); 3645 } 3646 retval.registers[retval.registerCount++] = parseRegister_nibble((REGISTER98!=null?REGISTER98.getText():null)); 3647 3648 } 3649 break; 3650 3651 default : 3652 break loop32; 3653 } 3654 } 3655 3656 match(input, Token.UP, null); 3657 } 3658 3659 } 3660 3661 } 3662 catch (RecognitionException re) { 3663 reportError(re); 3664 recover(input,re); 3665 } 3666 finally { 3667 // do for sure before leaving 3668 } 3669 return retval; 3670 } 3671 // $ANTLR end "register_list" 3672 3673 3674 public static class register_range_return extends TreeRuleReturnScope { 3675 public int startRegister; 3676 public int endRegister; 3677 }; 3678 3679 3680 // $ANTLR start "register_range" 3681 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:677:1: register_range returns [int startRegister, int endRegister] : ^( I_REGISTER_RANGE (startReg= REGISTER (endReg= REGISTER )? )? ) ; register_range()3682 public final smaliTreeWalker.register_range_return register_range() throws RecognitionException { 3683 smaliTreeWalker.register_range_return retval = new smaliTreeWalker.register_range_return(); 3684 retval.start = input.LT(1); 3685 3686 CommonTree startReg=null; 3687 CommonTree endReg=null; 3688 CommonTree I_REGISTER_RANGE99=null; 3689 3690 try { 3691 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:678:3: ( ^( I_REGISTER_RANGE (startReg= REGISTER (endReg= REGISTER )? )? ) ) 3692 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:678:5: ^( I_REGISTER_RANGE (startReg= REGISTER (endReg= REGISTER )? )? ) 3693 { 3694 I_REGISTER_RANGE99=(CommonTree)match(input,I_REGISTER_RANGE,FOLLOW_I_REGISTER_RANGE_in_register_range1723); 3695 if ( input.LA(1)==Token.DOWN ) { 3696 match(input, Token.DOWN, null); 3697 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:678:24: (startReg= REGISTER (endReg= REGISTER )? )? 3698 int alt34=2; 3699 int LA34_0 = input.LA(1); 3700 if ( (LA34_0==REGISTER) ) { 3701 alt34=1; 3702 } 3703 switch (alt34) { 3704 case 1 : 3705 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:678:25: startReg= REGISTER (endReg= REGISTER )? 3706 { 3707 startReg=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_range1728); 3708 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:678:49: (endReg= REGISTER )? 3709 int alt33=2; 3710 int LA33_0 = input.LA(1); 3711 if ( (LA33_0==REGISTER) ) { 3712 alt33=1; 3713 } 3714 switch (alt33) { 3715 case 1 : 3716 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:678:49: endReg= REGISTER 3717 { 3718 endReg=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_range1732); 3719 } 3720 break; 3721 3722 } 3723 3724 } 3725 break; 3726 3727 } 3728 3729 match(input, Token.UP, null); 3730 } 3731 3732 3733 if (startReg == null) { 3734 retval.startRegister = 0; 3735 retval.endRegister = -1; 3736 } else { 3737 retval.startRegister = parseRegister_short((startReg!=null?startReg.getText():null)); 3738 if (endReg == null) { 3739 retval.endRegister = retval.startRegister; 3740 } else { 3741 retval.endRegister = parseRegister_short((endReg!=null?endReg.getText():null)); 3742 } 3743 3744 int registerCount = retval.endRegister-retval.startRegister+1; 3745 if (registerCount < 1) { 3746 throw new SemanticException(input, I_REGISTER_RANGE99, "A register range must have the lower register listed first"); 3747 } 3748 } 3749 3750 } 3751 3752 } 3753 catch (RecognitionException re) { 3754 reportError(re); 3755 recover(input,re); 3756 } 3757 finally { 3758 // do for sure before leaving 3759 } 3760 return retval; 3761 } 3762 // $ANTLR end "register_range" 3763 3764 3765 3766 // $ANTLR start "verification_error_reference" 3767 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:698:1: verification_error_reference returns [ImmutableReference reference] : ( CLASS_DESCRIPTOR | field_reference | method_reference ); verification_error_reference()3768 public final ImmutableReference verification_error_reference() throws RecognitionException { 3769 ImmutableReference reference = null; 3770 3771 3772 CommonTree CLASS_DESCRIPTOR100=null; 3773 ImmutableFieldReference field_reference101 =null; 3774 ImmutableMethodReference method_reference102 =null; 3775 3776 try { 3777 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:699:3: ( CLASS_DESCRIPTOR | field_reference | method_reference ) 3778 int alt35=3; 3779 switch ( input.LA(1) ) { 3780 case CLASS_DESCRIPTOR: 3781 { 3782 int LA35_1 = input.LA(2); 3783 if ( (LA35_1==UP) ) { 3784 alt35=1; 3785 } 3786 else if ( (LA35_1==SIMPLE_NAME) ) { 3787 int LA35_3 = input.LA(3); 3788 if ( (LA35_3==ARRAY_DESCRIPTOR||LA35_3==CLASS_DESCRIPTOR||LA35_3==PRIMITIVE_TYPE) ) { 3789 alt35=2; 3790 } 3791 else if ( (LA35_3==I_METHOD_PROTOTYPE) ) { 3792 alt35=3; 3793 } 3794 3795 else { 3796 int nvaeMark = input.mark(); 3797 try { 3798 for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { 3799 input.consume(); 3800 } 3801 NoViableAltException nvae = 3802 new NoViableAltException("", 35, 3, input); 3803 throw nvae; 3804 } finally { 3805 input.rewind(nvaeMark); 3806 } 3807 } 3808 3809 } 3810 3811 else { 3812 int nvaeMark = input.mark(); 3813 try { 3814 input.consume(); 3815 NoViableAltException nvae = 3816 new NoViableAltException("", 35, 1, input); 3817 throw nvae; 3818 } finally { 3819 input.rewind(nvaeMark); 3820 } 3821 } 3822 3823 } 3824 break; 3825 case ARRAY_DESCRIPTOR: 3826 { 3827 int LA35_2 = input.LA(2); 3828 if ( (LA35_2==SIMPLE_NAME) ) { 3829 int LA35_3 = input.LA(3); 3830 if ( (LA35_3==ARRAY_DESCRIPTOR||LA35_3==CLASS_DESCRIPTOR||LA35_3==PRIMITIVE_TYPE) ) { 3831 alt35=2; 3832 } 3833 else if ( (LA35_3==I_METHOD_PROTOTYPE) ) { 3834 alt35=3; 3835 } 3836 3837 else { 3838 int nvaeMark = input.mark(); 3839 try { 3840 for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { 3841 input.consume(); 3842 } 3843 NoViableAltException nvae = 3844 new NoViableAltException("", 35, 3, input); 3845 throw nvae; 3846 } finally { 3847 input.rewind(nvaeMark); 3848 } 3849 } 3850 3851 } 3852 3853 else { 3854 int nvaeMark = input.mark(); 3855 try { 3856 input.consume(); 3857 NoViableAltException nvae = 3858 new NoViableAltException("", 35, 2, input); 3859 throw nvae; 3860 } finally { 3861 input.rewind(nvaeMark); 3862 } 3863 } 3864 3865 } 3866 break; 3867 case SIMPLE_NAME: 3868 { 3869 int LA35_3 = input.LA(2); 3870 if ( (LA35_3==ARRAY_DESCRIPTOR||LA35_3==CLASS_DESCRIPTOR||LA35_3==PRIMITIVE_TYPE) ) { 3871 alt35=2; 3872 } 3873 else if ( (LA35_3==I_METHOD_PROTOTYPE) ) { 3874 alt35=3; 3875 } 3876 3877 else { 3878 int nvaeMark = input.mark(); 3879 try { 3880 input.consume(); 3881 NoViableAltException nvae = 3882 new NoViableAltException("", 35, 3, input); 3883 throw nvae; 3884 } finally { 3885 input.rewind(nvaeMark); 3886 } 3887 } 3888 3889 } 3890 break; 3891 default: 3892 NoViableAltException nvae = 3893 new NoViableAltException("", 35, 0, input); 3894 throw nvae; 3895 } 3896 switch (alt35) { 3897 case 1 : 3898 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:699:5: CLASS_DESCRIPTOR 3899 { 3900 CLASS_DESCRIPTOR100=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference1755); 3901 3902 reference = new ImmutableTypeReference((CLASS_DESCRIPTOR100!=null?CLASS_DESCRIPTOR100.getText():null)); 3903 3904 } 3905 break; 3906 case 2 : 3907 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:703:5: field_reference 3908 { 3909 pushFollow(FOLLOW_field_reference_in_verification_error_reference1765); 3910 field_reference101=field_reference(); 3911 state._fsp--; 3912 3913 3914 reference = field_reference101; 3915 3916 } 3917 break; 3918 case 3 : 3919 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:707:5: method_reference 3920 { 3921 pushFollow(FOLLOW_method_reference_in_verification_error_reference1775); 3922 method_reference102=method_reference(); 3923 state._fsp--; 3924 3925 3926 reference = method_reference102; 3927 3928 } 3929 break; 3930 3931 } 3932 } 3933 catch (RecognitionException re) { 3934 reportError(re); 3935 recover(input,re); 3936 } 3937 finally { 3938 // do for sure before leaving 3939 } 3940 return reference; 3941 } 3942 // $ANTLR end "verification_error_reference" 3943 3944 3945 3946 // $ANTLR start "verification_error_type" 3947 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:712:1: verification_error_type returns [int verificationError] : VERIFICATION_ERROR_TYPE ; verification_error_type()3948 public final int verification_error_type() throws RecognitionException { 3949 int verificationError = 0; 3950 3951 3952 CommonTree VERIFICATION_ERROR_TYPE103=null; 3953 3954 try { 3955 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:713:3: ( VERIFICATION_ERROR_TYPE ) 3956 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:713:5: VERIFICATION_ERROR_TYPE 3957 { 3958 VERIFICATION_ERROR_TYPE103=(CommonTree)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_verification_error_type1792); 3959 3960 verificationError = VerificationError.getVerificationError((VERIFICATION_ERROR_TYPE103!=null?VERIFICATION_ERROR_TYPE103.getText():null)); 3961 3962 } 3963 3964 } 3965 catch (RecognitionException re) { 3966 reportError(re); 3967 recover(input,re); 3968 } 3969 finally { 3970 // do for sure before leaving 3971 } 3972 return verificationError; 3973 } 3974 // $ANTLR end "verification_error_type" 3975 3976 3977 public static class instruction_return extends TreeRuleReturnScope { 3978 }; 3979 3980 3981 // $ANTLR start "instruction" 3982 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:718:1: instruction : ( insn_format10t | insn_format10x | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_string | insn_format21c_type | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_type | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format3rc_method | insn_format3rc_type | insn_format51l_type | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive ); instruction()3983 public final smaliTreeWalker.instruction_return instruction() throws RecognitionException { 3984 smaliTreeWalker.instruction_return retval = new smaliTreeWalker.instruction_return(); 3985 retval.start = input.LT(1); 3986 3987 try { 3988 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:719:3: ( insn_format10t | insn_format10x | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_string | insn_format21c_type | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_type | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format3rc_method | insn_format3rc_type | insn_format51l_type | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive ) 3989 int alt36=34; 3990 switch ( input.LA(1) ) { 3991 case I_STATEMENT_FORMAT10t: 3992 { 3993 alt36=1; 3994 } 3995 break; 3996 case I_STATEMENT_FORMAT10x: 3997 { 3998 alt36=2; 3999 } 4000 break; 4001 case I_STATEMENT_FORMAT11n: 4002 { 4003 alt36=3; 4004 } 4005 break; 4006 case I_STATEMENT_FORMAT11x: 4007 { 4008 alt36=4; 4009 } 4010 break; 4011 case I_STATEMENT_FORMAT12x: 4012 { 4013 alt36=5; 4014 } 4015 break; 4016 case I_STATEMENT_FORMAT20bc: 4017 { 4018 alt36=6; 4019 } 4020 break; 4021 case I_STATEMENT_FORMAT20t: 4022 { 4023 alt36=7; 4024 } 4025 break; 4026 case I_STATEMENT_FORMAT21c_FIELD: 4027 { 4028 alt36=8; 4029 } 4030 break; 4031 case I_STATEMENT_FORMAT21c_STRING: 4032 { 4033 alt36=9; 4034 } 4035 break; 4036 case I_STATEMENT_FORMAT21c_TYPE: 4037 { 4038 alt36=10; 4039 } 4040 break; 4041 case I_STATEMENT_FORMAT21ih: 4042 { 4043 alt36=11; 4044 } 4045 break; 4046 case I_STATEMENT_FORMAT21lh: 4047 { 4048 alt36=12; 4049 } 4050 break; 4051 case I_STATEMENT_FORMAT21s: 4052 { 4053 alt36=13; 4054 } 4055 break; 4056 case I_STATEMENT_FORMAT21t: 4057 { 4058 alt36=14; 4059 } 4060 break; 4061 case I_STATEMENT_FORMAT22b: 4062 { 4063 alt36=15; 4064 } 4065 break; 4066 case I_STATEMENT_FORMAT22c_FIELD: 4067 { 4068 alt36=16; 4069 } 4070 break; 4071 case I_STATEMENT_FORMAT22c_TYPE: 4072 { 4073 alt36=17; 4074 } 4075 break; 4076 case I_STATEMENT_FORMAT22s: 4077 { 4078 alt36=18; 4079 } 4080 break; 4081 case I_STATEMENT_FORMAT22t: 4082 { 4083 alt36=19; 4084 } 4085 break; 4086 case I_STATEMENT_FORMAT22x: 4087 { 4088 alt36=20; 4089 } 4090 break; 4091 case I_STATEMENT_FORMAT23x: 4092 { 4093 alt36=21; 4094 } 4095 break; 4096 case I_STATEMENT_FORMAT30t: 4097 { 4098 alt36=22; 4099 } 4100 break; 4101 case I_STATEMENT_FORMAT31c: 4102 { 4103 alt36=23; 4104 } 4105 break; 4106 case I_STATEMENT_FORMAT31i: 4107 { 4108 alt36=24; 4109 } 4110 break; 4111 case I_STATEMENT_FORMAT31t: 4112 { 4113 alt36=25; 4114 } 4115 break; 4116 case I_STATEMENT_FORMAT32x: 4117 { 4118 alt36=26; 4119 } 4120 break; 4121 case I_STATEMENT_FORMAT35c_METHOD: 4122 { 4123 alt36=27; 4124 } 4125 break; 4126 case I_STATEMENT_FORMAT35c_TYPE: 4127 { 4128 alt36=28; 4129 } 4130 break; 4131 case I_STATEMENT_FORMAT3rc_METHOD: 4132 { 4133 alt36=29; 4134 } 4135 break; 4136 case I_STATEMENT_FORMAT3rc_TYPE: 4137 { 4138 alt36=30; 4139 } 4140 break; 4141 case I_STATEMENT_FORMAT51l: 4142 { 4143 alt36=31; 4144 } 4145 break; 4146 case I_STATEMENT_ARRAY_DATA: 4147 { 4148 alt36=32; 4149 } 4150 break; 4151 case I_STATEMENT_PACKED_SWITCH: 4152 { 4153 alt36=33; 4154 } 4155 break; 4156 case I_STATEMENT_SPARSE_SWITCH: 4157 { 4158 alt36=34; 4159 } 4160 break; 4161 default: 4162 NoViableAltException nvae = 4163 new NoViableAltException("", 36, 0, input); 4164 throw nvae; 4165 } 4166 switch (alt36) { 4167 case 1 : 4168 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:719:5: insn_format10t 4169 { 4170 pushFollow(FOLLOW_insn_format10t_in_instruction1806); 4171 insn_format10t(); 4172 state._fsp--; 4173 4174 } 4175 break; 4176 case 2 : 4177 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:720:5: insn_format10x 4178 { 4179 pushFollow(FOLLOW_insn_format10x_in_instruction1812); 4180 insn_format10x(); 4181 state._fsp--; 4182 4183 } 4184 break; 4185 case 3 : 4186 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:721:5: insn_format11n 4187 { 4188 pushFollow(FOLLOW_insn_format11n_in_instruction1818); 4189 insn_format11n(); 4190 state._fsp--; 4191 4192 } 4193 break; 4194 case 4 : 4195 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:722:5: insn_format11x 4196 { 4197 pushFollow(FOLLOW_insn_format11x_in_instruction1824); 4198 insn_format11x(); 4199 state._fsp--; 4200 4201 } 4202 break; 4203 case 5 : 4204 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:723:5: insn_format12x 4205 { 4206 pushFollow(FOLLOW_insn_format12x_in_instruction1830); 4207 insn_format12x(); 4208 state._fsp--; 4209 4210 } 4211 break; 4212 case 6 : 4213 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:724:5: insn_format20bc 4214 { 4215 pushFollow(FOLLOW_insn_format20bc_in_instruction1836); 4216 insn_format20bc(); 4217 state._fsp--; 4218 4219 } 4220 break; 4221 case 7 : 4222 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:725:5: insn_format20t 4223 { 4224 pushFollow(FOLLOW_insn_format20t_in_instruction1842); 4225 insn_format20t(); 4226 state._fsp--; 4227 4228 } 4229 break; 4230 case 8 : 4231 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:726:5: insn_format21c_field 4232 { 4233 pushFollow(FOLLOW_insn_format21c_field_in_instruction1848); 4234 insn_format21c_field(); 4235 state._fsp--; 4236 4237 } 4238 break; 4239 case 9 : 4240 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:727:5: insn_format21c_string 4241 { 4242 pushFollow(FOLLOW_insn_format21c_string_in_instruction1854); 4243 insn_format21c_string(); 4244 state._fsp--; 4245 4246 } 4247 break; 4248 case 10 : 4249 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:728:5: insn_format21c_type 4250 { 4251 pushFollow(FOLLOW_insn_format21c_type_in_instruction1860); 4252 insn_format21c_type(); 4253 state._fsp--; 4254 4255 } 4256 break; 4257 case 11 : 4258 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:729:5: insn_format21ih 4259 { 4260 pushFollow(FOLLOW_insn_format21ih_in_instruction1866); 4261 insn_format21ih(); 4262 state._fsp--; 4263 4264 } 4265 break; 4266 case 12 : 4267 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:730:5: insn_format21lh 4268 { 4269 pushFollow(FOLLOW_insn_format21lh_in_instruction1872); 4270 insn_format21lh(); 4271 state._fsp--; 4272 4273 } 4274 break; 4275 case 13 : 4276 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:731:5: insn_format21s 4277 { 4278 pushFollow(FOLLOW_insn_format21s_in_instruction1878); 4279 insn_format21s(); 4280 state._fsp--; 4281 4282 } 4283 break; 4284 case 14 : 4285 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:732:5: insn_format21t 4286 { 4287 pushFollow(FOLLOW_insn_format21t_in_instruction1884); 4288 insn_format21t(); 4289 state._fsp--; 4290 4291 } 4292 break; 4293 case 15 : 4294 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:733:5: insn_format22b 4295 { 4296 pushFollow(FOLLOW_insn_format22b_in_instruction1890); 4297 insn_format22b(); 4298 state._fsp--; 4299 4300 } 4301 break; 4302 case 16 : 4303 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:734:5: insn_format22c_field 4304 { 4305 pushFollow(FOLLOW_insn_format22c_field_in_instruction1896); 4306 insn_format22c_field(); 4307 state._fsp--; 4308 4309 } 4310 break; 4311 case 17 : 4312 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:735:5: insn_format22c_type 4313 { 4314 pushFollow(FOLLOW_insn_format22c_type_in_instruction1902); 4315 insn_format22c_type(); 4316 state._fsp--; 4317 4318 } 4319 break; 4320 case 18 : 4321 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:736:5: insn_format22s 4322 { 4323 pushFollow(FOLLOW_insn_format22s_in_instruction1908); 4324 insn_format22s(); 4325 state._fsp--; 4326 4327 } 4328 break; 4329 case 19 : 4330 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:737:5: insn_format22t 4331 { 4332 pushFollow(FOLLOW_insn_format22t_in_instruction1914); 4333 insn_format22t(); 4334 state._fsp--; 4335 4336 } 4337 break; 4338 case 20 : 4339 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:738:5: insn_format22x 4340 { 4341 pushFollow(FOLLOW_insn_format22x_in_instruction1920); 4342 insn_format22x(); 4343 state._fsp--; 4344 4345 } 4346 break; 4347 case 21 : 4348 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:739:5: insn_format23x 4349 { 4350 pushFollow(FOLLOW_insn_format23x_in_instruction1926); 4351 insn_format23x(); 4352 state._fsp--; 4353 4354 } 4355 break; 4356 case 22 : 4357 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:740:5: insn_format30t 4358 { 4359 pushFollow(FOLLOW_insn_format30t_in_instruction1932); 4360 insn_format30t(); 4361 state._fsp--; 4362 4363 } 4364 break; 4365 case 23 : 4366 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:741:5: insn_format31c 4367 { 4368 pushFollow(FOLLOW_insn_format31c_in_instruction1938); 4369 insn_format31c(); 4370 state._fsp--; 4371 4372 } 4373 break; 4374 case 24 : 4375 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:742:5: insn_format31i 4376 { 4377 pushFollow(FOLLOW_insn_format31i_in_instruction1944); 4378 insn_format31i(); 4379 state._fsp--; 4380 4381 } 4382 break; 4383 case 25 : 4384 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:743:5: insn_format31t 4385 { 4386 pushFollow(FOLLOW_insn_format31t_in_instruction1950); 4387 insn_format31t(); 4388 state._fsp--; 4389 4390 } 4391 break; 4392 case 26 : 4393 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:744:5: insn_format32x 4394 { 4395 pushFollow(FOLLOW_insn_format32x_in_instruction1956); 4396 insn_format32x(); 4397 state._fsp--; 4398 4399 } 4400 break; 4401 case 27 : 4402 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:745:5: insn_format35c_method 4403 { 4404 pushFollow(FOLLOW_insn_format35c_method_in_instruction1962); 4405 insn_format35c_method(); 4406 state._fsp--; 4407 4408 } 4409 break; 4410 case 28 : 4411 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:746:5: insn_format35c_type 4412 { 4413 pushFollow(FOLLOW_insn_format35c_type_in_instruction1968); 4414 insn_format35c_type(); 4415 state._fsp--; 4416 4417 } 4418 break; 4419 case 29 : 4420 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:747:5: insn_format3rc_method 4421 { 4422 pushFollow(FOLLOW_insn_format3rc_method_in_instruction1974); 4423 insn_format3rc_method(); 4424 state._fsp--; 4425 4426 } 4427 break; 4428 case 30 : 4429 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:748:5: insn_format3rc_type 4430 { 4431 pushFollow(FOLLOW_insn_format3rc_type_in_instruction1980); 4432 insn_format3rc_type(); 4433 state._fsp--; 4434 4435 } 4436 break; 4437 case 31 : 4438 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:749:5: insn_format51l_type 4439 { 4440 pushFollow(FOLLOW_insn_format51l_type_in_instruction1986); 4441 insn_format51l_type(); 4442 state._fsp--; 4443 4444 } 4445 break; 4446 case 32 : 4447 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:750:5: insn_array_data_directive 4448 { 4449 pushFollow(FOLLOW_insn_array_data_directive_in_instruction1992); 4450 insn_array_data_directive(); 4451 state._fsp--; 4452 4453 } 4454 break; 4455 case 33 : 4456 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:751:5: insn_packed_switch_directive 4457 { 4458 pushFollow(FOLLOW_insn_packed_switch_directive_in_instruction1998); 4459 insn_packed_switch_directive(); 4460 state._fsp--; 4461 4462 } 4463 break; 4464 case 34 : 4465 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:752:5: insn_sparse_switch_directive 4466 { 4467 pushFollow(FOLLOW_insn_sparse_switch_directive_in_instruction2004); 4468 insn_sparse_switch_directive(); 4469 state._fsp--; 4470 4471 } 4472 break; 4473 4474 } 4475 } 4476 catch (Exception ex) { 4477 4478 reportError(new SemanticException(input, ((CommonTree)retval.start), ex.getMessage())); 4479 recover(input, null); 4480 4481 } 4482 4483 finally { 4484 // do for sure before leaving 4485 } 4486 return retval; 4487 } 4488 // $ANTLR end "instruction" 4489 4490 4491 4492 // $ANTLR start "insn_format10t" 4493 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:758:1: insn_format10t : ^( I_STATEMENT_FORMAT10t INSTRUCTION_FORMAT10t label_ref ) ; insn_format10t()4494 public final void insn_format10t() throws RecognitionException { 4495 CommonTree INSTRUCTION_FORMAT10t104=null; 4496 Label label_ref105 =null; 4497 4498 try { 4499 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:759:3: ( ^( I_STATEMENT_FORMAT10t INSTRUCTION_FORMAT10t label_ref ) ) 4500 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:760:5: ^( I_STATEMENT_FORMAT10t INSTRUCTION_FORMAT10t label_ref ) 4501 { 4502 match(input,I_STATEMENT_FORMAT10t,FOLLOW_I_STATEMENT_FORMAT10t_in_insn_format10t2028); 4503 match(input, Token.DOWN, null); 4504 INSTRUCTION_FORMAT10t104=(CommonTree)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t2030); 4505 pushFollow(FOLLOW_label_ref_in_insn_format10t2032); 4506 label_ref105=label_ref(); 4507 state._fsp--; 4508 4509 match(input, Token.UP, null); 4510 4511 4512 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT10t104!=null?INSTRUCTION_FORMAT10t104.getText():null)); 4513 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction10t(opcode, label_ref105)); 4514 4515 } 4516 4517 } 4518 catch (RecognitionException re) { 4519 reportError(re); 4520 recover(input,re); 4521 } 4522 finally { 4523 // do for sure before leaving 4524 } 4525 } 4526 // $ANTLR end "insn_format10t" 4527 4528 4529 4530 // $ANTLR start "insn_format10x" 4531 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:766:1: insn_format10x : ^( I_STATEMENT_FORMAT10x INSTRUCTION_FORMAT10x ) ; insn_format10x()4532 public final void insn_format10x() throws RecognitionException { 4533 CommonTree INSTRUCTION_FORMAT10x106=null; 4534 4535 try { 4536 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:767:3: ( ^( I_STATEMENT_FORMAT10x INSTRUCTION_FORMAT10x ) ) 4537 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:768:5: ^( I_STATEMENT_FORMAT10x INSTRUCTION_FORMAT10x ) 4538 { 4539 match(input,I_STATEMENT_FORMAT10x,FOLLOW_I_STATEMENT_FORMAT10x_in_insn_format10x2055); 4540 match(input, Token.DOWN, null); 4541 INSTRUCTION_FORMAT10x106=(CommonTree)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x2057); 4542 match(input, Token.UP, null); 4543 4544 4545 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT10x106!=null?INSTRUCTION_FORMAT10x106.getText():null)); 4546 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction10x(opcode)); 4547 4548 } 4549 4550 } 4551 catch (RecognitionException re) { 4552 reportError(re); 4553 recover(input,re); 4554 } 4555 finally { 4556 // do for sure before leaving 4557 } 4558 } 4559 // $ANTLR end "insn_format10x" 4560 4561 4562 4563 // $ANTLR start "insn_format11n" 4564 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:774:1: insn_format11n : ^( I_STATEMENT_FORMAT11n INSTRUCTION_FORMAT11n REGISTER short_integral_literal ) ; insn_format11n()4565 public final void insn_format11n() throws RecognitionException { 4566 CommonTree INSTRUCTION_FORMAT11n107=null; 4567 CommonTree REGISTER108=null; 4568 short short_integral_literal109 =0; 4569 4570 try { 4571 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:775:3: ( ^( I_STATEMENT_FORMAT11n INSTRUCTION_FORMAT11n REGISTER short_integral_literal ) ) 4572 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:776:5: ^( I_STATEMENT_FORMAT11n INSTRUCTION_FORMAT11n REGISTER short_integral_literal ) 4573 { 4574 match(input,I_STATEMENT_FORMAT11n,FOLLOW_I_STATEMENT_FORMAT11n_in_insn_format11n2080); 4575 match(input, Token.DOWN, null); 4576 INSTRUCTION_FORMAT11n107=(CommonTree)match(input,INSTRUCTION_FORMAT11n,FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n2082); 4577 REGISTER108=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11n2084); 4578 pushFollow(FOLLOW_short_integral_literal_in_insn_format11n2086); 4579 short_integral_literal109=short_integral_literal(); 4580 state._fsp--; 4581 4582 match(input, Token.UP, null); 4583 4584 4585 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT11n107!=null?INSTRUCTION_FORMAT11n107.getText():null)); 4586 byte regA = parseRegister_nibble((REGISTER108!=null?REGISTER108.getText():null)); 4587 4588 short litB = short_integral_literal109; 4589 LiteralTools.checkNibble(litB); 4590 4591 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction11n(opcode, regA, litB)); 4592 4593 } 4594 4595 } 4596 catch (RecognitionException re) { 4597 reportError(re); 4598 recover(input,re); 4599 } 4600 finally { 4601 // do for sure before leaving 4602 } 4603 } 4604 // $ANTLR end "insn_format11n" 4605 4606 4607 4608 // $ANTLR start "insn_format11x" 4609 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:787:1: insn_format11x : ^( I_STATEMENT_FORMAT11x INSTRUCTION_FORMAT11x REGISTER ) ; insn_format11x()4610 public final void insn_format11x() throws RecognitionException { 4611 CommonTree INSTRUCTION_FORMAT11x110=null; 4612 CommonTree REGISTER111=null; 4613 4614 try { 4615 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:788:3: ( ^( I_STATEMENT_FORMAT11x INSTRUCTION_FORMAT11x REGISTER ) ) 4616 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:789:5: ^( I_STATEMENT_FORMAT11x INSTRUCTION_FORMAT11x REGISTER ) 4617 { 4618 match(input,I_STATEMENT_FORMAT11x,FOLLOW_I_STATEMENT_FORMAT11x_in_insn_format11x2109); 4619 match(input, Token.DOWN, null); 4620 INSTRUCTION_FORMAT11x110=(CommonTree)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x2111); 4621 REGISTER111=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11x2113); 4622 match(input, Token.UP, null); 4623 4624 4625 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT11x110!=null?INSTRUCTION_FORMAT11x110.getText():null)); 4626 short regA = parseRegister_byte((REGISTER111!=null?REGISTER111.getText():null)); 4627 4628 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction11x(opcode, regA)); 4629 4630 } 4631 4632 } 4633 catch (RecognitionException re) { 4634 reportError(re); 4635 recover(input,re); 4636 } 4637 finally { 4638 // do for sure before leaving 4639 } 4640 } 4641 // $ANTLR end "insn_format11x" 4642 4643 4644 4645 // $ANTLR start "insn_format12x" 4646 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:797:1: insn_format12x : ^( I_STATEMENT_FORMAT12x INSTRUCTION_FORMAT12x registerA= REGISTER registerB= REGISTER ) ; insn_format12x()4647 public final void insn_format12x() throws RecognitionException { 4648 CommonTree registerA=null; 4649 CommonTree registerB=null; 4650 CommonTree INSTRUCTION_FORMAT12x112=null; 4651 4652 try { 4653 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:798:3: ( ^( I_STATEMENT_FORMAT12x INSTRUCTION_FORMAT12x registerA= REGISTER registerB= REGISTER ) ) 4654 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:799:5: ^( I_STATEMENT_FORMAT12x INSTRUCTION_FORMAT12x registerA= REGISTER registerB= REGISTER ) 4655 { 4656 match(input,I_STATEMENT_FORMAT12x,FOLLOW_I_STATEMENT_FORMAT12x_in_insn_format12x2136); 4657 match(input, Token.DOWN, null); 4658 INSTRUCTION_FORMAT12x112=(CommonTree)match(input,INSTRUCTION_FORMAT12x,FOLLOW_INSTRUCTION_FORMAT12x_in_insn_format12x2138); 4659 registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x2142); 4660 registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x2146); 4661 match(input, Token.UP, null); 4662 4663 4664 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT12x112!=null?INSTRUCTION_FORMAT12x112.getText():null)); 4665 byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null)); 4666 byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null)); 4667 4668 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction12x(opcode, regA, regB)); 4669 4670 } 4671 4672 } 4673 catch (RecognitionException re) { 4674 reportError(re); 4675 recover(input,re); 4676 } 4677 finally { 4678 // do for sure before leaving 4679 } 4680 } 4681 // $ANTLR end "insn_format12x" 4682 4683 4684 4685 // $ANTLR start "insn_format20bc" 4686 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:808:1: insn_format20bc : ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc verification_error_type verification_error_reference ) ; insn_format20bc()4687 public final void insn_format20bc() throws RecognitionException { 4688 CommonTree INSTRUCTION_FORMAT20bc113=null; 4689 int verification_error_type114 =0; 4690 ImmutableReference verification_error_reference115 =null; 4691 4692 try { 4693 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:809:3: ( ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc verification_error_type verification_error_reference ) ) 4694 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:810:5: ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc verification_error_type verification_error_reference ) 4695 { 4696 match(input,I_STATEMENT_FORMAT20bc,FOLLOW_I_STATEMENT_FORMAT20bc_in_insn_format20bc2169); 4697 match(input, Token.DOWN, null); 4698 INSTRUCTION_FORMAT20bc113=(CommonTree)match(input,INSTRUCTION_FORMAT20bc,FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc2171); 4699 pushFollow(FOLLOW_verification_error_type_in_insn_format20bc2173); 4700 verification_error_type114=verification_error_type(); 4701 state._fsp--; 4702 4703 pushFollow(FOLLOW_verification_error_reference_in_insn_format20bc2175); 4704 verification_error_reference115=verification_error_reference(); 4705 state._fsp--; 4706 4707 match(input, Token.UP, null); 4708 4709 4710 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT20bc113!=null?INSTRUCTION_FORMAT20bc113.getText():null)); 4711 4712 int verificationError = verification_error_type114; 4713 ImmutableReference referencedItem = verification_error_reference115; 4714 4715 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction20bc(opcode, verificationError, 4716 dexBuilder.internReference(referencedItem))); 4717 4718 } 4719 4720 } 4721 catch (RecognitionException re) { 4722 reportError(re); 4723 recover(input,re); 4724 } 4725 finally { 4726 // do for sure before leaving 4727 } 4728 } 4729 // $ANTLR end "insn_format20bc" 4730 4731 4732 4733 // $ANTLR start "insn_format20t" 4734 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:821:1: insn_format20t : ^( I_STATEMENT_FORMAT20t INSTRUCTION_FORMAT20t label_ref ) ; insn_format20t()4735 public final void insn_format20t() throws RecognitionException { 4736 CommonTree INSTRUCTION_FORMAT20t116=null; 4737 Label label_ref117 =null; 4738 4739 try { 4740 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:822:3: ( ^( I_STATEMENT_FORMAT20t INSTRUCTION_FORMAT20t label_ref ) ) 4741 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:823:5: ^( I_STATEMENT_FORMAT20t INSTRUCTION_FORMAT20t label_ref ) 4742 { 4743 match(input,I_STATEMENT_FORMAT20t,FOLLOW_I_STATEMENT_FORMAT20t_in_insn_format20t2198); 4744 match(input, Token.DOWN, null); 4745 INSTRUCTION_FORMAT20t116=(CommonTree)match(input,INSTRUCTION_FORMAT20t,FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t2200); 4746 pushFollow(FOLLOW_label_ref_in_insn_format20t2202); 4747 label_ref117=label_ref(); 4748 state._fsp--; 4749 4750 match(input, Token.UP, null); 4751 4752 4753 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT20t116!=null?INSTRUCTION_FORMAT20t116.getText():null)); 4754 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction20t(opcode, label_ref117)); 4755 4756 } 4757 4758 } 4759 catch (RecognitionException re) { 4760 reportError(re); 4761 recover(input,re); 4762 } 4763 finally { 4764 // do for sure before leaving 4765 } 4766 } 4767 // $ANTLR end "insn_format20t" 4768 4769 4770 4771 // $ANTLR start "insn_format21c_field" 4772 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:829:1: insn_format21c_field : ^( I_STATEMENT_FORMAT21c_FIELD inst= ( INSTRUCTION_FORMAT21c_FIELD | INSTRUCTION_FORMAT21c_FIELD_ODEX ) REGISTER field_reference ) ; insn_format21c_field()4773 public final void insn_format21c_field() throws RecognitionException { 4774 CommonTree inst=null; 4775 CommonTree REGISTER118=null; 4776 ImmutableFieldReference field_reference119 =null; 4777 4778 try { 4779 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:830:3: ( ^( I_STATEMENT_FORMAT21c_FIELD inst= ( INSTRUCTION_FORMAT21c_FIELD | INSTRUCTION_FORMAT21c_FIELD_ODEX ) REGISTER field_reference ) ) 4780 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:831:5: ^( I_STATEMENT_FORMAT21c_FIELD inst= ( INSTRUCTION_FORMAT21c_FIELD | INSTRUCTION_FORMAT21c_FIELD_ODEX ) REGISTER field_reference ) 4781 { 4782 match(input,I_STATEMENT_FORMAT21c_FIELD,FOLLOW_I_STATEMENT_FORMAT21c_FIELD_in_insn_format21c_field2225); 4783 match(input, Token.DOWN, null); 4784 inst=(CommonTree)input.LT(1); 4785 if ( (input.LA(1) >= INSTRUCTION_FORMAT21c_FIELD && input.LA(1) <= INSTRUCTION_FORMAT21c_FIELD_ODEX) ) { 4786 input.consume(); 4787 state.errorRecovery=false; 4788 } 4789 else { 4790 MismatchedSetException mse = new MismatchedSetException(null,input); 4791 throw mse; 4792 } 4793 REGISTER118=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field2237); 4794 pushFollow(FOLLOW_field_reference_in_insn_format21c_field2239); 4795 field_reference119=field_reference(); 4796 state._fsp--; 4797 4798 match(input, Token.UP, null); 4799 4800 4801 Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null)); 4802 short regA = parseRegister_byte((REGISTER118!=null?REGISTER118.getText():null)); 4803 4804 ImmutableFieldReference fieldReference = field_reference119; 4805 4806 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA, 4807 dexBuilder.internFieldReference(fieldReference))); 4808 4809 } 4810 4811 } 4812 catch (RecognitionException re) { 4813 reportError(re); 4814 recover(input,re); 4815 } 4816 finally { 4817 // do for sure before leaving 4818 } 4819 } 4820 // $ANTLR end "insn_format21c_field" 4821 4822 4823 4824 // $ANTLR start "insn_format21c_string" 4825 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:842:1: insn_format21c_string : ^( I_STATEMENT_FORMAT21c_STRING INSTRUCTION_FORMAT21c_STRING REGISTER string_literal ) ; insn_format21c_string()4826 public final void insn_format21c_string() throws RecognitionException { 4827 CommonTree INSTRUCTION_FORMAT21c_STRING120=null; 4828 CommonTree REGISTER121=null; 4829 String string_literal122 =null; 4830 4831 try { 4832 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:843:3: ( ^( I_STATEMENT_FORMAT21c_STRING INSTRUCTION_FORMAT21c_STRING REGISTER string_literal ) ) 4833 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:844:5: ^( I_STATEMENT_FORMAT21c_STRING INSTRUCTION_FORMAT21c_STRING REGISTER string_literal ) 4834 { 4835 match(input,I_STATEMENT_FORMAT21c_STRING,FOLLOW_I_STATEMENT_FORMAT21c_STRING_in_insn_format21c_string2262); 4836 match(input, Token.DOWN, null); 4837 INSTRUCTION_FORMAT21c_STRING120=(CommonTree)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string2264); 4838 REGISTER121=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_string2266); 4839 pushFollow(FOLLOW_string_literal_in_insn_format21c_string2268); 4840 string_literal122=string_literal(); 4841 state._fsp--; 4842 4843 match(input, Token.UP, null); 4844 4845 4846 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_STRING120!=null?INSTRUCTION_FORMAT21c_STRING120.getText():null)); 4847 short regA = parseRegister_byte((REGISTER121!=null?REGISTER121.getText():null)); 4848 4849 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA, 4850 dexBuilder.internStringReference(string_literal122))); 4851 4852 } 4853 4854 } 4855 catch (RecognitionException re) { 4856 reportError(re); 4857 recover(input,re); 4858 } 4859 finally { 4860 // do for sure before leaving 4861 } 4862 } 4863 // $ANTLR end "insn_format21c_string" 4864 4865 4866 4867 // $ANTLR start "insn_format21c_type" 4868 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:853:1: insn_format21c_type : ^( I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) ; insn_format21c_type()4869 public final void insn_format21c_type() throws RecognitionException { 4870 CommonTree INSTRUCTION_FORMAT21c_TYPE123=null; 4871 CommonTree REGISTER124=null; 4872 TreeRuleReturnScope nonvoid_type_descriptor125 =null; 4873 4874 try { 4875 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:854:3: ( ^( I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) ) 4876 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:855:5: ^( I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) 4877 { 4878 match(input,I_STATEMENT_FORMAT21c_TYPE,FOLLOW_I_STATEMENT_FORMAT21c_TYPE_in_insn_format21c_type2291); 4879 match(input, Token.DOWN, null); 4880 INSTRUCTION_FORMAT21c_TYPE123=(CommonTree)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type2293); 4881 REGISTER124=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_type2295); 4882 pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type2297); 4883 nonvoid_type_descriptor125=nonvoid_type_descriptor(); 4884 state._fsp--; 4885 4886 match(input, Token.UP, null); 4887 4888 4889 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_TYPE123!=null?INSTRUCTION_FORMAT21c_TYPE123.getText():null)); 4890 short regA = parseRegister_byte((REGISTER124!=null?REGISTER124.getText():null)); 4891 4892 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA, 4893 dexBuilder.internTypeReference((nonvoid_type_descriptor125!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor125).type:null)))); 4894 4895 } 4896 4897 } 4898 catch (RecognitionException re) { 4899 reportError(re); 4900 recover(input,re); 4901 } 4902 finally { 4903 // do for sure before leaving 4904 } 4905 } 4906 // $ANTLR end "insn_format21c_type" 4907 4908 4909 4910 // $ANTLR start "insn_format21ih" 4911 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:864:1: insn_format21ih : ^( I_STATEMENT_FORMAT21ih INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) ; insn_format21ih()4912 public final void insn_format21ih() throws RecognitionException { 4913 CommonTree INSTRUCTION_FORMAT21ih126=null; 4914 CommonTree REGISTER127=null; 4915 int fixed_32bit_literal128 =0; 4916 4917 try { 4918 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:865:3: ( ^( I_STATEMENT_FORMAT21ih INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) ) 4919 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:866:5: ^( I_STATEMENT_FORMAT21ih INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) 4920 { 4921 match(input,I_STATEMENT_FORMAT21ih,FOLLOW_I_STATEMENT_FORMAT21ih_in_insn_format21ih2320); 4922 match(input, Token.DOWN, null); 4923 INSTRUCTION_FORMAT21ih126=(CommonTree)match(input,INSTRUCTION_FORMAT21ih,FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih2322); 4924 REGISTER127=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21ih2324); 4925 pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21ih2326); 4926 fixed_32bit_literal128=fixed_32bit_literal(); 4927 state._fsp--; 4928 4929 match(input, Token.UP, null); 4930 4931 4932 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21ih126!=null?INSTRUCTION_FORMAT21ih126.getText():null)); 4933 short regA = parseRegister_byte((REGISTER127!=null?REGISTER127.getText():null)); 4934 4935 int litB = fixed_32bit_literal128; 4936 4937 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21ih(opcode, regA, litB)); 4938 4939 } 4940 4941 } 4942 catch (RecognitionException re) { 4943 reportError(re); 4944 recover(input,re); 4945 } 4946 finally { 4947 // do for sure before leaving 4948 } 4949 } 4950 // $ANTLR end "insn_format21ih" 4951 4952 4953 4954 // $ANTLR start "insn_format21lh" 4955 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:876:1: insn_format21lh : ^( I_STATEMENT_FORMAT21lh INSTRUCTION_FORMAT21lh REGISTER fixed_64bit_literal ) ; insn_format21lh()4956 public final void insn_format21lh() throws RecognitionException { 4957 CommonTree INSTRUCTION_FORMAT21lh129=null; 4958 CommonTree REGISTER130=null; 4959 long fixed_64bit_literal131 =0; 4960 4961 try { 4962 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:877:3: ( ^( I_STATEMENT_FORMAT21lh INSTRUCTION_FORMAT21lh REGISTER fixed_64bit_literal ) ) 4963 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:878:5: ^( I_STATEMENT_FORMAT21lh INSTRUCTION_FORMAT21lh REGISTER fixed_64bit_literal ) 4964 { 4965 match(input,I_STATEMENT_FORMAT21lh,FOLLOW_I_STATEMENT_FORMAT21lh_in_insn_format21lh2349); 4966 match(input, Token.DOWN, null); 4967 INSTRUCTION_FORMAT21lh129=(CommonTree)match(input,INSTRUCTION_FORMAT21lh,FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh2351); 4968 REGISTER130=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21lh2353); 4969 pushFollow(FOLLOW_fixed_64bit_literal_in_insn_format21lh2355); 4970 fixed_64bit_literal131=fixed_64bit_literal(); 4971 state._fsp--; 4972 4973 match(input, Token.UP, null); 4974 4975 4976 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21lh129!=null?INSTRUCTION_FORMAT21lh129.getText():null)); 4977 short regA = parseRegister_byte((REGISTER130!=null?REGISTER130.getText():null)); 4978 4979 long litB = fixed_64bit_literal131; 4980 4981 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21lh(opcode, regA, litB)); 4982 4983 } 4984 4985 } 4986 catch (RecognitionException re) { 4987 reportError(re); 4988 recover(input,re); 4989 } 4990 finally { 4991 // do for sure before leaving 4992 } 4993 } 4994 // $ANTLR end "insn_format21lh" 4995 4996 4997 4998 // $ANTLR start "insn_format21s" 4999 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:888:1: insn_format21s : ^( I_STATEMENT_FORMAT21s INSTRUCTION_FORMAT21s REGISTER short_integral_literal ) ; insn_format21s()5000 public final void insn_format21s() throws RecognitionException { 5001 CommonTree INSTRUCTION_FORMAT21s132=null; 5002 CommonTree REGISTER133=null; 5003 short short_integral_literal134 =0; 5004 5005 try { 5006 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:889:3: ( ^( I_STATEMENT_FORMAT21s INSTRUCTION_FORMAT21s REGISTER short_integral_literal ) ) 5007 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:890:5: ^( I_STATEMENT_FORMAT21s INSTRUCTION_FORMAT21s REGISTER short_integral_literal ) 5008 { 5009 match(input,I_STATEMENT_FORMAT21s,FOLLOW_I_STATEMENT_FORMAT21s_in_insn_format21s2378); 5010 match(input, Token.DOWN, null); 5011 INSTRUCTION_FORMAT21s132=(CommonTree)match(input,INSTRUCTION_FORMAT21s,FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s2380); 5012 REGISTER133=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21s2382); 5013 pushFollow(FOLLOW_short_integral_literal_in_insn_format21s2384); 5014 short_integral_literal134=short_integral_literal(); 5015 state._fsp--; 5016 5017 match(input, Token.UP, null); 5018 5019 5020 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21s132!=null?INSTRUCTION_FORMAT21s132.getText():null)); 5021 short regA = parseRegister_byte((REGISTER133!=null?REGISTER133.getText():null)); 5022 5023 short litB = short_integral_literal134; 5024 5025 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21s(opcode, regA, litB)); 5026 5027 } 5028 5029 } 5030 catch (RecognitionException re) { 5031 reportError(re); 5032 recover(input,re); 5033 } 5034 finally { 5035 // do for sure before leaving 5036 } 5037 } 5038 // $ANTLR end "insn_format21s" 5039 5040 5041 5042 // $ANTLR start "insn_format21t" 5043 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:900:1: insn_format21t : ^( I_STATEMENT_FORMAT21t INSTRUCTION_FORMAT21t REGISTER label_ref ) ; insn_format21t()5044 public final void insn_format21t() throws RecognitionException { 5045 CommonTree INSTRUCTION_FORMAT21t135=null; 5046 CommonTree REGISTER136=null; 5047 Label label_ref137 =null; 5048 5049 try { 5050 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:901:3: ( ^( I_STATEMENT_FORMAT21t INSTRUCTION_FORMAT21t REGISTER label_ref ) ) 5051 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:902:5: ^( I_STATEMENT_FORMAT21t INSTRUCTION_FORMAT21t REGISTER label_ref ) 5052 { 5053 match(input,I_STATEMENT_FORMAT21t,FOLLOW_I_STATEMENT_FORMAT21t_in_insn_format21t2407); 5054 match(input, Token.DOWN, null); 5055 INSTRUCTION_FORMAT21t135=(CommonTree)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t2409); 5056 REGISTER136=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21t2411); 5057 pushFollow(FOLLOW_label_ref_in_insn_format21t2413); 5058 label_ref137=label_ref(); 5059 state._fsp--; 5060 5061 match(input, Token.UP, null); 5062 5063 5064 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21t135!=null?INSTRUCTION_FORMAT21t135.getText():null)); 5065 short regA = parseRegister_byte((REGISTER136!=null?REGISTER136.getText():null)); 5066 5067 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21t(opcode, regA, label_ref137)); 5068 5069 } 5070 5071 } 5072 catch (RecognitionException re) { 5073 reportError(re); 5074 recover(input,re); 5075 } 5076 finally { 5077 // do for sure before leaving 5078 } 5079 } 5080 // $ANTLR end "insn_format21t" 5081 5082 5083 5084 // $ANTLR start "insn_format22b" 5085 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:910:1: insn_format22b : ^( I_STATEMENT_FORMAT22b INSTRUCTION_FORMAT22b registerA= REGISTER registerB= REGISTER short_integral_literal ) ; insn_format22b()5086 public final void insn_format22b() throws RecognitionException { 5087 CommonTree registerA=null; 5088 CommonTree registerB=null; 5089 CommonTree INSTRUCTION_FORMAT22b138=null; 5090 short short_integral_literal139 =0; 5091 5092 try { 5093 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:911:3: ( ^( I_STATEMENT_FORMAT22b INSTRUCTION_FORMAT22b registerA= REGISTER registerB= REGISTER short_integral_literal ) ) 5094 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:912:5: ^( I_STATEMENT_FORMAT22b INSTRUCTION_FORMAT22b registerA= REGISTER registerB= REGISTER short_integral_literal ) 5095 { 5096 match(input,I_STATEMENT_FORMAT22b,FOLLOW_I_STATEMENT_FORMAT22b_in_insn_format22b2436); 5097 match(input, Token.DOWN, null); 5098 INSTRUCTION_FORMAT22b138=(CommonTree)match(input,INSTRUCTION_FORMAT22b,FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b2438); 5099 registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b2442); 5100 registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b2446); 5101 pushFollow(FOLLOW_short_integral_literal_in_insn_format22b2448); 5102 short_integral_literal139=short_integral_literal(); 5103 state._fsp--; 5104 5105 match(input, Token.UP, null); 5106 5107 5108 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22b138!=null?INSTRUCTION_FORMAT22b138.getText():null)); 5109 short regA = parseRegister_byte((registerA!=null?registerA.getText():null)); 5110 short regB = parseRegister_byte((registerB!=null?registerB.getText():null)); 5111 5112 short litC = short_integral_literal139; 5113 LiteralTools.checkByte(litC); 5114 5115 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22b(opcode, regA, regB, litC)); 5116 5117 } 5118 5119 } 5120 catch (RecognitionException re) { 5121 reportError(re); 5122 recover(input,re); 5123 } 5124 finally { 5125 // do for sure before leaving 5126 } 5127 } 5128 // $ANTLR end "insn_format22b" 5129 5130 5131 5132 // $ANTLR start "insn_format22c_field" 5133 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:924:1: insn_format22c_field : ^( I_STATEMENT_FORMAT22c_FIELD inst= ( INSTRUCTION_FORMAT22c_FIELD | INSTRUCTION_FORMAT22c_FIELD_ODEX ) registerA= REGISTER registerB= REGISTER field_reference ) ; insn_format22c_field()5134 public final void insn_format22c_field() throws RecognitionException { 5135 CommonTree inst=null; 5136 CommonTree registerA=null; 5137 CommonTree registerB=null; 5138 ImmutableFieldReference field_reference140 =null; 5139 5140 try { 5141 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:925:3: ( ^( I_STATEMENT_FORMAT22c_FIELD inst= ( INSTRUCTION_FORMAT22c_FIELD | INSTRUCTION_FORMAT22c_FIELD_ODEX ) registerA= REGISTER registerB= REGISTER field_reference ) ) 5142 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:926:5: ^( I_STATEMENT_FORMAT22c_FIELD inst= ( INSTRUCTION_FORMAT22c_FIELD | INSTRUCTION_FORMAT22c_FIELD_ODEX ) registerA= REGISTER registerB= REGISTER field_reference ) 5143 { 5144 match(input,I_STATEMENT_FORMAT22c_FIELD,FOLLOW_I_STATEMENT_FORMAT22c_FIELD_in_insn_format22c_field2471); 5145 match(input, Token.DOWN, null); 5146 inst=(CommonTree)input.LT(1); 5147 if ( (input.LA(1) >= INSTRUCTION_FORMAT22c_FIELD && input.LA(1) <= INSTRUCTION_FORMAT22c_FIELD_ODEX) ) { 5148 input.consume(); 5149 state.errorRecovery=false; 5150 } 5151 else { 5152 MismatchedSetException mse = new MismatchedSetException(null,input); 5153 throw mse; 5154 } 5155 registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field2485); 5156 registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field2489); 5157 pushFollow(FOLLOW_field_reference_in_insn_format22c_field2491); 5158 field_reference140=field_reference(); 5159 state._fsp--; 5160 5161 match(input, Token.UP, null); 5162 5163 5164 Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null)); 5165 byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null)); 5166 byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null)); 5167 5168 ImmutableFieldReference fieldReference = field_reference140; 5169 5170 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22c(opcode, regA, regB, 5171 dexBuilder.internFieldReference(fieldReference))); 5172 5173 } 5174 5175 } 5176 catch (RecognitionException re) { 5177 reportError(re); 5178 recover(input,re); 5179 } 5180 finally { 5181 // do for sure before leaving 5182 } 5183 } 5184 // $ANTLR end "insn_format22c_field" 5185 5186 5187 5188 // $ANTLR start "insn_format22c_type" 5189 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:938:1: insn_format22c_type : ^( I_STATEMENT_FORMAT22c_TYPE INSTRUCTION_FORMAT22c_TYPE registerA= REGISTER registerB= REGISTER nonvoid_type_descriptor ) ; insn_format22c_type()5190 public final void insn_format22c_type() throws RecognitionException { 5191 CommonTree registerA=null; 5192 CommonTree registerB=null; 5193 CommonTree INSTRUCTION_FORMAT22c_TYPE141=null; 5194 TreeRuleReturnScope nonvoid_type_descriptor142 =null; 5195 5196 try { 5197 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:939:3: ( ^( I_STATEMENT_FORMAT22c_TYPE INSTRUCTION_FORMAT22c_TYPE registerA= REGISTER registerB= REGISTER nonvoid_type_descriptor ) ) 5198 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:940:5: ^( I_STATEMENT_FORMAT22c_TYPE INSTRUCTION_FORMAT22c_TYPE registerA= REGISTER registerB= REGISTER nonvoid_type_descriptor ) 5199 { 5200 match(input,I_STATEMENT_FORMAT22c_TYPE,FOLLOW_I_STATEMENT_FORMAT22c_TYPE_in_insn_format22c_type2514); 5201 match(input, Token.DOWN, null); 5202 INSTRUCTION_FORMAT22c_TYPE141=(CommonTree)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type2516); 5203 registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type2520); 5204 registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type2524); 5205 pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type2526); 5206 nonvoid_type_descriptor142=nonvoid_type_descriptor(); 5207 state._fsp--; 5208 5209 match(input, Token.UP, null); 5210 5211 5212 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22c_TYPE141!=null?INSTRUCTION_FORMAT22c_TYPE141.getText():null)); 5213 byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null)); 5214 byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null)); 5215 5216 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22c(opcode, regA, regB, 5217 dexBuilder.internTypeReference((nonvoid_type_descriptor142!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor142).type:null)))); 5218 5219 } 5220 5221 } 5222 catch (RecognitionException re) { 5223 reportError(re); 5224 recover(input,re); 5225 } 5226 finally { 5227 // do for sure before leaving 5228 } 5229 } 5230 // $ANTLR end "insn_format22c_type" 5231 5232 5233 5234 // $ANTLR start "insn_format22s" 5235 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:950:1: insn_format22s : ^( I_STATEMENT_FORMAT22s INSTRUCTION_FORMAT22s registerA= REGISTER registerB= REGISTER short_integral_literal ) ; insn_format22s()5236 public final void insn_format22s() throws RecognitionException { 5237 CommonTree registerA=null; 5238 CommonTree registerB=null; 5239 CommonTree INSTRUCTION_FORMAT22s143=null; 5240 short short_integral_literal144 =0; 5241 5242 try { 5243 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:951:3: ( ^( I_STATEMENT_FORMAT22s INSTRUCTION_FORMAT22s registerA= REGISTER registerB= REGISTER short_integral_literal ) ) 5244 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:952:5: ^( I_STATEMENT_FORMAT22s INSTRUCTION_FORMAT22s registerA= REGISTER registerB= REGISTER short_integral_literal ) 5245 { 5246 match(input,I_STATEMENT_FORMAT22s,FOLLOW_I_STATEMENT_FORMAT22s_in_insn_format22s2549); 5247 match(input, Token.DOWN, null); 5248 INSTRUCTION_FORMAT22s143=(CommonTree)match(input,INSTRUCTION_FORMAT22s,FOLLOW_INSTRUCTION_FORMAT22s_in_insn_format22s2551); 5249 registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s2555); 5250 registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s2559); 5251 pushFollow(FOLLOW_short_integral_literal_in_insn_format22s2561); 5252 short_integral_literal144=short_integral_literal(); 5253 state._fsp--; 5254 5255 match(input, Token.UP, null); 5256 5257 5258 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22s143!=null?INSTRUCTION_FORMAT22s143.getText():null)); 5259 byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null)); 5260 byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null)); 5261 5262 short litC = short_integral_literal144; 5263 5264 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22s(opcode, regA, regB, litC)); 5265 5266 } 5267 5268 } 5269 catch (RecognitionException re) { 5270 reportError(re); 5271 recover(input,re); 5272 } 5273 finally { 5274 // do for sure before leaving 5275 } 5276 } 5277 // $ANTLR end "insn_format22s" 5278 5279 5280 5281 // $ANTLR start "insn_format22t" 5282 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:963:1: insn_format22t : ^( I_STATEMENT_FORMAT22t INSTRUCTION_FORMAT22t registerA= REGISTER registerB= REGISTER label_ref ) ; insn_format22t()5283 public final void insn_format22t() throws RecognitionException { 5284 CommonTree registerA=null; 5285 CommonTree registerB=null; 5286 CommonTree INSTRUCTION_FORMAT22t145=null; 5287 Label label_ref146 =null; 5288 5289 try { 5290 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:964:3: ( ^( I_STATEMENT_FORMAT22t INSTRUCTION_FORMAT22t registerA= REGISTER registerB= REGISTER label_ref ) ) 5291 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:965:5: ^( I_STATEMENT_FORMAT22t INSTRUCTION_FORMAT22t registerA= REGISTER registerB= REGISTER label_ref ) 5292 { 5293 match(input,I_STATEMENT_FORMAT22t,FOLLOW_I_STATEMENT_FORMAT22t_in_insn_format22t2584); 5294 match(input, Token.DOWN, null); 5295 INSTRUCTION_FORMAT22t145=(CommonTree)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t2586); 5296 registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t2590); 5297 registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t2594); 5298 pushFollow(FOLLOW_label_ref_in_insn_format22t2596); 5299 label_ref146=label_ref(); 5300 state._fsp--; 5301 5302 match(input, Token.UP, null); 5303 5304 5305 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22t145!=null?INSTRUCTION_FORMAT22t145.getText():null)); 5306 byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null)); 5307 byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null)); 5308 5309 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22t(opcode, regA, regB, label_ref146)); 5310 5311 } 5312 5313 } 5314 catch (RecognitionException re) { 5315 reportError(re); 5316 recover(input,re); 5317 } 5318 finally { 5319 // do for sure before leaving 5320 } 5321 } 5322 // $ANTLR end "insn_format22t" 5323 5324 5325 5326 // $ANTLR start "insn_format22x" 5327 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:974:1: insn_format22x : ^( I_STATEMENT_FORMAT22x INSTRUCTION_FORMAT22x registerA= REGISTER registerB= REGISTER ) ; insn_format22x()5328 public final void insn_format22x() throws RecognitionException { 5329 CommonTree registerA=null; 5330 CommonTree registerB=null; 5331 CommonTree INSTRUCTION_FORMAT22x147=null; 5332 5333 try { 5334 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:975:3: ( ^( I_STATEMENT_FORMAT22x INSTRUCTION_FORMAT22x registerA= REGISTER registerB= REGISTER ) ) 5335 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:976:5: ^( I_STATEMENT_FORMAT22x INSTRUCTION_FORMAT22x registerA= REGISTER registerB= REGISTER ) 5336 { 5337 match(input,I_STATEMENT_FORMAT22x,FOLLOW_I_STATEMENT_FORMAT22x_in_insn_format22x2619); 5338 match(input, Token.DOWN, null); 5339 INSTRUCTION_FORMAT22x147=(CommonTree)match(input,INSTRUCTION_FORMAT22x,FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x2621); 5340 registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x2625); 5341 registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x2629); 5342 match(input, Token.UP, null); 5343 5344 5345 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22x147!=null?INSTRUCTION_FORMAT22x147.getText():null)); 5346 short regA = parseRegister_byte((registerA!=null?registerA.getText():null)); 5347 int regB = parseRegister_short((registerB!=null?registerB.getText():null)); 5348 5349 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22x(opcode, regA, regB)); 5350 5351 } 5352 5353 } 5354 catch (RecognitionException re) { 5355 reportError(re); 5356 recover(input,re); 5357 } 5358 finally { 5359 // do for sure before leaving 5360 } 5361 } 5362 // $ANTLR end "insn_format22x" 5363 5364 5365 5366 // $ANTLR start "insn_format23x" 5367 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:985:1: insn_format23x : ^( I_STATEMENT_FORMAT23x INSTRUCTION_FORMAT23x registerA= REGISTER registerB= REGISTER registerC= REGISTER ) ; insn_format23x()5368 public final void insn_format23x() throws RecognitionException { 5369 CommonTree registerA=null; 5370 CommonTree registerB=null; 5371 CommonTree registerC=null; 5372 CommonTree INSTRUCTION_FORMAT23x148=null; 5373 5374 try { 5375 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:986:3: ( ^( I_STATEMENT_FORMAT23x INSTRUCTION_FORMAT23x registerA= REGISTER registerB= REGISTER registerC= REGISTER ) ) 5376 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:987:5: ^( I_STATEMENT_FORMAT23x INSTRUCTION_FORMAT23x registerA= REGISTER registerB= REGISTER registerC= REGISTER ) 5377 { 5378 match(input,I_STATEMENT_FORMAT23x,FOLLOW_I_STATEMENT_FORMAT23x_in_insn_format23x2652); 5379 match(input, Token.DOWN, null); 5380 INSTRUCTION_FORMAT23x148=(CommonTree)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x2654); 5381 registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x2658); 5382 registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x2662); 5383 registerC=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x2666); 5384 match(input, Token.UP, null); 5385 5386 5387 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT23x148!=null?INSTRUCTION_FORMAT23x148.getText():null)); 5388 short regA = parseRegister_byte((registerA!=null?registerA.getText():null)); 5389 short regB = parseRegister_byte((registerB!=null?registerB.getText():null)); 5390 short regC = parseRegister_byte((registerC!=null?registerC.getText():null)); 5391 5392 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction23x(opcode, regA, regB, regC)); 5393 5394 } 5395 5396 } 5397 catch (RecognitionException re) { 5398 reportError(re); 5399 recover(input,re); 5400 } 5401 finally { 5402 // do for sure before leaving 5403 } 5404 } 5405 // $ANTLR end "insn_format23x" 5406 5407 5408 5409 // $ANTLR start "insn_format30t" 5410 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:997:1: insn_format30t : ^( I_STATEMENT_FORMAT30t INSTRUCTION_FORMAT30t label_ref ) ; insn_format30t()5411 public final void insn_format30t() throws RecognitionException { 5412 CommonTree INSTRUCTION_FORMAT30t149=null; 5413 Label label_ref150 =null; 5414 5415 try { 5416 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:998:3: ( ^( I_STATEMENT_FORMAT30t INSTRUCTION_FORMAT30t label_ref ) ) 5417 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:999:5: ^( I_STATEMENT_FORMAT30t INSTRUCTION_FORMAT30t label_ref ) 5418 { 5419 match(input,I_STATEMENT_FORMAT30t,FOLLOW_I_STATEMENT_FORMAT30t_in_insn_format30t2689); 5420 match(input, Token.DOWN, null); 5421 INSTRUCTION_FORMAT30t149=(CommonTree)match(input,INSTRUCTION_FORMAT30t,FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t2691); 5422 pushFollow(FOLLOW_label_ref_in_insn_format30t2693); 5423 label_ref150=label_ref(); 5424 state._fsp--; 5425 5426 match(input, Token.UP, null); 5427 5428 5429 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT30t149!=null?INSTRUCTION_FORMAT30t149.getText():null)); 5430 5431 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction30t(opcode, label_ref150)); 5432 5433 } 5434 5435 } 5436 catch (RecognitionException re) { 5437 reportError(re); 5438 recover(input,re); 5439 } 5440 finally { 5441 // do for sure before leaving 5442 } 5443 } 5444 // $ANTLR end "insn_format30t" 5445 5446 5447 5448 // $ANTLR start "insn_format31c" 5449 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1006:1: insn_format31c : ^( I_STATEMENT_FORMAT31c INSTRUCTION_FORMAT31c REGISTER string_literal ) ; insn_format31c()5450 public final void insn_format31c() throws RecognitionException { 5451 CommonTree INSTRUCTION_FORMAT31c151=null; 5452 CommonTree REGISTER152=null; 5453 String string_literal153 =null; 5454 5455 try { 5456 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1007:3: ( ^( I_STATEMENT_FORMAT31c INSTRUCTION_FORMAT31c REGISTER string_literal ) ) 5457 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1008:5: ^( I_STATEMENT_FORMAT31c INSTRUCTION_FORMAT31c REGISTER string_literal ) 5458 { 5459 match(input,I_STATEMENT_FORMAT31c,FOLLOW_I_STATEMENT_FORMAT31c_in_insn_format31c2716); 5460 match(input, Token.DOWN, null); 5461 INSTRUCTION_FORMAT31c151=(CommonTree)match(input,INSTRUCTION_FORMAT31c,FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c2718); 5462 REGISTER152=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31c2720); 5463 pushFollow(FOLLOW_string_literal_in_insn_format31c2722); 5464 string_literal153=string_literal(); 5465 state._fsp--; 5466 5467 match(input, Token.UP, null); 5468 5469 5470 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31c151!=null?INSTRUCTION_FORMAT31c151.getText():null)); 5471 short regA = parseRegister_byte((REGISTER152!=null?REGISTER152.getText():null)); 5472 5473 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31c(opcode, regA, 5474 dexBuilder.internStringReference(string_literal153))); 5475 5476 } 5477 5478 } 5479 catch (RecognitionException re) { 5480 reportError(re); 5481 recover(input,re); 5482 } 5483 finally { 5484 // do for sure before leaving 5485 } 5486 } 5487 // $ANTLR end "insn_format31c" 5488 5489 5490 5491 // $ANTLR start "insn_format31i" 5492 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1017:1: insn_format31i : ^( I_STATEMENT_FORMAT31i INSTRUCTION_FORMAT31i REGISTER fixed_32bit_literal ) ; insn_format31i()5493 public final void insn_format31i() throws RecognitionException { 5494 CommonTree INSTRUCTION_FORMAT31i154=null; 5495 CommonTree REGISTER155=null; 5496 int fixed_32bit_literal156 =0; 5497 5498 try { 5499 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1018:3: ( ^( I_STATEMENT_FORMAT31i INSTRUCTION_FORMAT31i REGISTER fixed_32bit_literal ) ) 5500 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1019:5: ^( I_STATEMENT_FORMAT31i INSTRUCTION_FORMAT31i REGISTER fixed_32bit_literal ) 5501 { 5502 match(input,I_STATEMENT_FORMAT31i,FOLLOW_I_STATEMENT_FORMAT31i_in_insn_format31i2745); 5503 match(input, Token.DOWN, null); 5504 INSTRUCTION_FORMAT31i154=(CommonTree)match(input,INSTRUCTION_FORMAT31i,FOLLOW_INSTRUCTION_FORMAT31i_in_insn_format31i2747); 5505 REGISTER155=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31i2749); 5506 pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format31i2751); 5507 fixed_32bit_literal156=fixed_32bit_literal(); 5508 state._fsp--; 5509 5510 match(input, Token.UP, null); 5511 5512 5513 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31i154!=null?INSTRUCTION_FORMAT31i154.getText():null)); 5514 short regA = parseRegister_byte((REGISTER155!=null?REGISTER155.getText():null)); 5515 5516 int litB = fixed_32bit_literal156; 5517 5518 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31i(opcode, regA, litB)); 5519 5520 } 5521 5522 } 5523 catch (RecognitionException re) { 5524 reportError(re); 5525 recover(input,re); 5526 } 5527 finally { 5528 // do for sure before leaving 5529 } 5530 } 5531 // $ANTLR end "insn_format31i" 5532 5533 5534 5535 // $ANTLR start "insn_format31t" 5536 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1029:1: insn_format31t : ^( I_STATEMENT_FORMAT31t INSTRUCTION_FORMAT31t REGISTER label_ref ) ; insn_format31t()5537 public final void insn_format31t() throws RecognitionException { 5538 CommonTree INSTRUCTION_FORMAT31t157=null; 5539 CommonTree REGISTER158=null; 5540 Label label_ref159 =null; 5541 5542 try { 5543 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1030:3: ( ^( I_STATEMENT_FORMAT31t INSTRUCTION_FORMAT31t REGISTER label_ref ) ) 5544 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1031:5: ^( I_STATEMENT_FORMAT31t INSTRUCTION_FORMAT31t REGISTER label_ref ) 5545 { 5546 match(input,I_STATEMENT_FORMAT31t,FOLLOW_I_STATEMENT_FORMAT31t_in_insn_format31t2774); 5547 match(input, Token.DOWN, null); 5548 INSTRUCTION_FORMAT31t157=(CommonTree)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t2776); 5549 REGISTER158=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31t2778); 5550 pushFollow(FOLLOW_label_ref_in_insn_format31t2780); 5551 label_ref159=label_ref(); 5552 state._fsp--; 5553 5554 match(input, Token.UP, null); 5555 5556 5557 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31t157!=null?INSTRUCTION_FORMAT31t157.getText():null)); 5558 5559 short regA = parseRegister_byte((REGISTER158!=null?REGISTER158.getText():null)); 5560 5561 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31t(opcode, regA, label_ref159)); 5562 5563 } 5564 5565 } 5566 catch (RecognitionException re) { 5567 reportError(re); 5568 recover(input,re); 5569 } 5570 finally { 5571 // do for sure before leaving 5572 } 5573 } 5574 // $ANTLR end "insn_format31t" 5575 5576 5577 5578 // $ANTLR start "insn_format32x" 5579 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1040:1: insn_format32x : ^( I_STATEMENT_FORMAT32x INSTRUCTION_FORMAT32x registerA= REGISTER registerB= REGISTER ) ; insn_format32x()5580 public final void insn_format32x() throws RecognitionException { 5581 CommonTree registerA=null; 5582 CommonTree registerB=null; 5583 CommonTree INSTRUCTION_FORMAT32x160=null; 5584 5585 try { 5586 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1041:3: ( ^( I_STATEMENT_FORMAT32x INSTRUCTION_FORMAT32x registerA= REGISTER registerB= REGISTER ) ) 5587 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1042:5: ^( I_STATEMENT_FORMAT32x INSTRUCTION_FORMAT32x registerA= REGISTER registerB= REGISTER ) 5588 { 5589 match(input,I_STATEMENT_FORMAT32x,FOLLOW_I_STATEMENT_FORMAT32x_in_insn_format32x2803); 5590 match(input, Token.DOWN, null); 5591 INSTRUCTION_FORMAT32x160=(CommonTree)match(input,INSTRUCTION_FORMAT32x,FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x2805); 5592 registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x2809); 5593 registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x2813); 5594 match(input, Token.UP, null); 5595 5596 5597 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT32x160!=null?INSTRUCTION_FORMAT32x160.getText():null)); 5598 int regA = parseRegister_short((registerA!=null?registerA.getText():null)); 5599 int regB = parseRegister_short((registerB!=null?registerB.getText():null)); 5600 5601 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction32x(opcode, regA, regB)); 5602 5603 } 5604 5605 } 5606 catch (RecognitionException re) { 5607 reportError(re); 5608 recover(input,re); 5609 } 5610 finally { 5611 // do for sure before leaving 5612 } 5613 } 5614 // $ANTLR end "insn_format32x" 5615 5616 5617 5618 // $ANTLR start "insn_format35c_method" 5619 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1051:1: insn_format35c_method : ^( I_STATEMENT_FORMAT35c_METHOD INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) ; insn_format35c_method()5620 public final void insn_format35c_method() throws RecognitionException { 5621 CommonTree INSTRUCTION_FORMAT35c_METHOD161=null; 5622 TreeRuleReturnScope register_list162 =null; 5623 ImmutableMethodReference method_reference163 =null; 5624 5625 try { 5626 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1052:3: ( ^( I_STATEMENT_FORMAT35c_METHOD INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) ) 5627 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1053:5: ^( I_STATEMENT_FORMAT35c_METHOD INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) 5628 { 5629 match(input,I_STATEMENT_FORMAT35c_METHOD,FOLLOW_I_STATEMENT_FORMAT35c_METHOD_in_insn_format35c_method2836); 5630 match(input, Token.DOWN, null); 5631 INSTRUCTION_FORMAT35c_METHOD161=(CommonTree)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method2838); 5632 pushFollow(FOLLOW_register_list_in_insn_format35c_method2840); 5633 register_list162=register_list(); 5634 state._fsp--; 5635 5636 pushFollow(FOLLOW_method_reference_in_insn_format35c_method2842); 5637 method_reference163=method_reference(); 5638 state._fsp--; 5639 5640 match(input, Token.UP, null); 5641 5642 5643 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT35c_METHOD161!=null?INSTRUCTION_FORMAT35c_METHOD161.getText():null)); 5644 5645 //this depends on the fact that register_list returns a byte[5] 5646 byte[] registers = (register_list162!=null?((smaliTreeWalker.register_list_return)register_list162).registers:null); 5647 byte registerCount = (register_list162!=null?((smaliTreeWalker.register_list_return)register_list162).registerCount:0); 5648 5649 ImmutableMethodReference methodReference = method_reference163; 5650 5651 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction35c(opcode, registerCount, registers[0], registers[1], 5652 registers[2], registers[3], registers[4], dexBuilder.internMethodReference(methodReference))); 5653 5654 } 5655 5656 } 5657 catch (RecognitionException re) { 5658 reportError(re); 5659 recover(input,re); 5660 } 5661 finally { 5662 // do for sure before leaving 5663 } 5664 } 5665 // $ANTLR end "insn_format35c_method" 5666 5667 5668 5669 // $ANTLR start "insn_format35c_type" 5670 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1067:1: insn_format35c_type : ^( I_STATEMENT_FORMAT35c_TYPE INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) ; insn_format35c_type()5671 public final void insn_format35c_type() throws RecognitionException { 5672 CommonTree INSTRUCTION_FORMAT35c_TYPE164=null; 5673 TreeRuleReturnScope register_list165 =null; 5674 TreeRuleReturnScope nonvoid_type_descriptor166 =null; 5675 5676 try { 5677 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1068:3: ( ^( I_STATEMENT_FORMAT35c_TYPE INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) ) 5678 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1069:5: ^( I_STATEMENT_FORMAT35c_TYPE INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) 5679 { 5680 match(input,I_STATEMENT_FORMAT35c_TYPE,FOLLOW_I_STATEMENT_FORMAT35c_TYPE_in_insn_format35c_type2865); 5681 match(input, Token.DOWN, null); 5682 INSTRUCTION_FORMAT35c_TYPE164=(CommonTree)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type2867); 5683 pushFollow(FOLLOW_register_list_in_insn_format35c_type2869); 5684 register_list165=register_list(); 5685 state._fsp--; 5686 5687 pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type2871); 5688 nonvoid_type_descriptor166=nonvoid_type_descriptor(); 5689 state._fsp--; 5690 5691 match(input, Token.UP, null); 5692 5693 5694 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT35c_TYPE164!=null?INSTRUCTION_FORMAT35c_TYPE164.getText():null)); 5695 5696 //this depends on the fact that register_list returns a byte[5] 5697 byte[] registers = (register_list165!=null?((smaliTreeWalker.register_list_return)register_list165).registers:null); 5698 byte registerCount = (register_list165!=null?((smaliTreeWalker.register_list_return)register_list165).registerCount:0); 5699 5700 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction35c(opcode, registerCount, registers[0], registers[1], 5701 registers[2], registers[3], registers[4], dexBuilder.internTypeReference((nonvoid_type_descriptor166!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor166).type:null)))); 5702 5703 } 5704 5705 } 5706 catch (RecognitionException re) { 5707 reportError(re); 5708 recover(input,re); 5709 } 5710 finally { 5711 // do for sure before leaving 5712 } 5713 } 5714 // $ANTLR end "insn_format35c_type" 5715 5716 5717 5718 // $ANTLR start "insn_format3rc_method" 5719 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1081:1: insn_format3rc_method : ^( I_STATEMENT_FORMAT3rc_METHOD INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) ; insn_format3rc_method()5720 public final void insn_format3rc_method() throws RecognitionException { 5721 CommonTree INSTRUCTION_FORMAT3rc_METHOD167=null; 5722 TreeRuleReturnScope register_range168 =null; 5723 ImmutableMethodReference method_reference169 =null; 5724 5725 try { 5726 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1082:3: ( ^( I_STATEMENT_FORMAT3rc_METHOD INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) ) 5727 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1083:5: ^( I_STATEMENT_FORMAT3rc_METHOD INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) 5728 { 5729 match(input,I_STATEMENT_FORMAT3rc_METHOD,FOLLOW_I_STATEMENT_FORMAT3rc_METHOD_in_insn_format3rc_method2894); 5730 match(input, Token.DOWN, null); 5731 INSTRUCTION_FORMAT3rc_METHOD167=(CommonTree)match(input,INSTRUCTION_FORMAT3rc_METHOD,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method2896); 5732 pushFollow(FOLLOW_register_range_in_insn_format3rc_method2898); 5733 register_range168=register_range(); 5734 state._fsp--; 5735 5736 pushFollow(FOLLOW_method_reference_in_insn_format3rc_method2900); 5737 method_reference169=method_reference(); 5738 state._fsp--; 5739 5740 match(input, Token.UP, null); 5741 5742 5743 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT3rc_METHOD167!=null?INSTRUCTION_FORMAT3rc_METHOD167.getText():null)); 5744 int startRegister = (register_range168!=null?((smaliTreeWalker.register_range_return)register_range168).startRegister:0); 5745 int endRegister = (register_range168!=null?((smaliTreeWalker.register_range_return)register_range168).endRegister:0); 5746 5747 int registerCount = endRegister-startRegister+1; 5748 5749 ImmutableMethodReference methodReference = method_reference169; 5750 5751 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction3rc(opcode, startRegister, registerCount, 5752 dexBuilder.internMethodReference(methodReference))); 5753 5754 } 5755 5756 } 5757 catch (RecognitionException re) { 5758 reportError(re); 5759 recover(input,re); 5760 } 5761 finally { 5762 // do for sure before leaving 5763 } 5764 } 5765 // $ANTLR end "insn_format3rc_method" 5766 5767 5768 5769 // $ANTLR start "insn_format3rc_type" 5770 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1097:1: insn_format3rc_type : ^( I_STATEMENT_FORMAT3rc_TYPE INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) ; insn_format3rc_type()5771 public final void insn_format3rc_type() throws RecognitionException { 5772 CommonTree INSTRUCTION_FORMAT3rc_TYPE170=null; 5773 TreeRuleReturnScope register_range171 =null; 5774 TreeRuleReturnScope nonvoid_type_descriptor172 =null; 5775 5776 try { 5777 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1098:3: ( ^( I_STATEMENT_FORMAT3rc_TYPE INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) ) 5778 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1099:5: ^( I_STATEMENT_FORMAT3rc_TYPE INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) 5779 { 5780 match(input,I_STATEMENT_FORMAT3rc_TYPE,FOLLOW_I_STATEMENT_FORMAT3rc_TYPE_in_insn_format3rc_type2923); 5781 match(input, Token.DOWN, null); 5782 INSTRUCTION_FORMAT3rc_TYPE170=(CommonTree)match(input,INSTRUCTION_FORMAT3rc_TYPE,FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type2925); 5783 pushFollow(FOLLOW_register_range_in_insn_format3rc_type2927); 5784 register_range171=register_range(); 5785 state._fsp--; 5786 5787 pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type2929); 5788 nonvoid_type_descriptor172=nonvoid_type_descriptor(); 5789 state._fsp--; 5790 5791 match(input, Token.UP, null); 5792 5793 5794 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT3rc_TYPE170!=null?INSTRUCTION_FORMAT3rc_TYPE170.getText():null)); 5795 int startRegister = (register_range171!=null?((smaliTreeWalker.register_range_return)register_range171).startRegister:0); 5796 int endRegister = (register_range171!=null?((smaliTreeWalker.register_range_return)register_range171).endRegister:0); 5797 5798 int registerCount = endRegister-startRegister+1; 5799 5800 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction3rc(opcode, startRegister, registerCount, 5801 dexBuilder.internTypeReference((nonvoid_type_descriptor172!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor172).type:null)))); 5802 5803 } 5804 5805 } 5806 catch (RecognitionException re) { 5807 reportError(re); 5808 recover(input,re); 5809 } 5810 finally { 5811 // do for sure before leaving 5812 } 5813 } 5814 // $ANTLR end "insn_format3rc_type" 5815 5816 5817 5818 // $ANTLR start "insn_format51l_type" 5819 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1111:1: insn_format51l_type : ^( I_STATEMENT_FORMAT51l INSTRUCTION_FORMAT51l REGISTER fixed_64bit_literal ) ; insn_format51l_type()5820 public final void insn_format51l_type() throws RecognitionException { 5821 CommonTree INSTRUCTION_FORMAT51l173=null; 5822 CommonTree REGISTER174=null; 5823 long fixed_64bit_literal175 =0; 5824 5825 try { 5826 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1112:3: ( ^( I_STATEMENT_FORMAT51l INSTRUCTION_FORMAT51l REGISTER fixed_64bit_literal ) ) 5827 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1113:5: ^( I_STATEMENT_FORMAT51l INSTRUCTION_FORMAT51l REGISTER fixed_64bit_literal ) 5828 { 5829 match(input,I_STATEMENT_FORMAT51l,FOLLOW_I_STATEMENT_FORMAT51l_in_insn_format51l_type2952); 5830 match(input, Token.DOWN, null); 5831 INSTRUCTION_FORMAT51l173=(CommonTree)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l_type2954); 5832 REGISTER174=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format51l_type2956); 5833 pushFollow(FOLLOW_fixed_64bit_literal_in_insn_format51l_type2958); 5834 fixed_64bit_literal175=fixed_64bit_literal(); 5835 state._fsp--; 5836 5837 match(input, Token.UP, null); 5838 5839 5840 Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT51l173!=null?INSTRUCTION_FORMAT51l173.getText():null)); 5841 short regA = parseRegister_byte((REGISTER174!=null?REGISTER174.getText():null)); 5842 5843 long litB = fixed_64bit_literal175; 5844 5845 method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction51l(opcode, regA, litB)); 5846 5847 } 5848 5849 } 5850 catch (RecognitionException re) { 5851 reportError(re); 5852 recover(input,re); 5853 } 5854 finally { 5855 // do for sure before leaving 5856 } 5857 } 5858 // $ANTLR end "insn_format51l_type" 5859 5860 5861 5862 // $ANTLR start "insn_array_data_directive" 5863 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1123:1: insn_array_data_directive : ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE short_integral_literal ) array_elements ) ; insn_array_data_directive()5864 public final void insn_array_data_directive() throws RecognitionException { 5865 short short_integral_literal176 =0; 5866 List<Number> array_elements177 =null; 5867 5868 try { 5869 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1124:3: ( ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE short_integral_literal ) array_elements ) ) 5870 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1125:5: ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE short_integral_literal ) array_elements ) 5871 { 5872 match(input,I_STATEMENT_ARRAY_DATA,FOLLOW_I_STATEMENT_ARRAY_DATA_in_insn_array_data_directive2981); 5873 match(input, Token.DOWN, null); 5874 match(input,I_ARRAY_ELEMENT_SIZE,FOLLOW_I_ARRAY_ELEMENT_SIZE_in_insn_array_data_directive2984); 5875 match(input, Token.DOWN, null); 5876 pushFollow(FOLLOW_short_integral_literal_in_insn_array_data_directive2986); 5877 short_integral_literal176=short_integral_literal(); 5878 state._fsp--; 5879 5880 match(input, Token.UP, null); 5881 5882 pushFollow(FOLLOW_array_elements_in_insn_array_data_directive2989); 5883 array_elements177=array_elements(); 5884 state._fsp--; 5885 5886 match(input, Token.UP, null); 5887 5888 5889 int elementWidth = short_integral_literal176; 5890 List<Number> elements = array_elements177; 5891 5892 method_stack.peek().methodBuilder.addInstruction(new BuilderArrayPayload(elementWidth, array_elements177)); 5893 5894 } 5895 5896 } 5897 catch (RecognitionException re) { 5898 reportError(re); 5899 recover(input,re); 5900 } 5901 finally { 5902 // do for sure before leaving 5903 } 5904 } 5905 // $ANTLR end "insn_array_data_directive" 5906 5907 5908 5909 // $ANTLR start "insn_packed_switch_directive" 5910 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1133:1: insn_packed_switch_directive : ^( I_STATEMENT_PACKED_SWITCH ^( I_PACKED_SWITCH_START_KEY fixed_32bit_literal ) packed_switch_elements ) ; insn_packed_switch_directive()5911 public final void insn_packed_switch_directive() throws RecognitionException { 5912 int fixed_32bit_literal178 =0; 5913 List<Label> packed_switch_elements179 =null; 5914 5915 try { 5916 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1134:3: ( ^( I_STATEMENT_PACKED_SWITCH ^( I_PACKED_SWITCH_START_KEY fixed_32bit_literal ) packed_switch_elements ) ) 5917 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1135:5: ^( I_STATEMENT_PACKED_SWITCH ^( I_PACKED_SWITCH_START_KEY fixed_32bit_literal ) packed_switch_elements ) 5918 { 5919 match(input,I_STATEMENT_PACKED_SWITCH,FOLLOW_I_STATEMENT_PACKED_SWITCH_in_insn_packed_switch_directive3011); 5920 match(input, Token.DOWN, null); 5921 match(input,I_PACKED_SWITCH_START_KEY,FOLLOW_I_PACKED_SWITCH_START_KEY_in_insn_packed_switch_directive3014); 5922 match(input, Token.DOWN, null); 5923 pushFollow(FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive3016); 5924 fixed_32bit_literal178=fixed_32bit_literal(); 5925 state._fsp--; 5926 5927 match(input, Token.UP, null); 5928 5929 pushFollow(FOLLOW_packed_switch_elements_in_insn_packed_switch_directive3019); 5930 packed_switch_elements179=packed_switch_elements(); 5931 state._fsp--; 5932 5933 match(input, Token.UP, null); 5934 5935 5936 int startKey = fixed_32bit_literal178; 5937 method_stack.peek().methodBuilder.addInstruction(new BuilderPackedSwitchPayload(startKey, 5938 packed_switch_elements179)); 5939 5940 } 5941 5942 } 5943 catch (RecognitionException re) { 5944 reportError(re); 5945 recover(input,re); 5946 } 5947 finally { 5948 // do for sure before leaving 5949 } 5950 } 5951 // $ANTLR end "insn_packed_switch_directive" 5952 5953 5954 5955 // $ANTLR start "insn_sparse_switch_directive" 5956 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1142:1: insn_sparse_switch_directive : ^( I_STATEMENT_SPARSE_SWITCH sparse_switch_elements ) ; insn_sparse_switch_directive()5957 public final void insn_sparse_switch_directive() throws RecognitionException { 5958 List<SwitchLabelElement> sparse_switch_elements180 =null; 5959 5960 try { 5961 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1143:3: ( ^( I_STATEMENT_SPARSE_SWITCH sparse_switch_elements ) ) 5962 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1144:5: ^( I_STATEMENT_SPARSE_SWITCH sparse_switch_elements ) 5963 { 5964 match(input,I_STATEMENT_SPARSE_SWITCH,FOLLOW_I_STATEMENT_SPARSE_SWITCH_in_insn_sparse_switch_directive3043); 5965 match(input, Token.DOWN, null); 5966 pushFollow(FOLLOW_sparse_switch_elements_in_insn_sparse_switch_directive3045); 5967 sparse_switch_elements180=sparse_switch_elements(); 5968 state._fsp--; 5969 5970 match(input, Token.UP, null); 5971 5972 5973 method_stack.peek().methodBuilder.addInstruction(new BuilderSparseSwitchPayload(sparse_switch_elements180)); 5974 5975 } 5976 5977 } 5978 catch (RecognitionException re) { 5979 reportError(re); 5980 recover(input,re); 5981 } 5982 finally { 5983 // do for sure before leaving 5984 } 5985 } 5986 // $ANTLR end "insn_sparse_switch_directive" 5987 5988 5989 public static class nonvoid_type_descriptor_return extends TreeRuleReturnScope { 5990 public String type; 5991 }; 5992 5993 5994 // $ANTLR start "nonvoid_type_descriptor" 5995 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1149:1: nonvoid_type_descriptor returns [String type] : ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) ; nonvoid_type_descriptor()5996 public final smaliTreeWalker.nonvoid_type_descriptor_return nonvoid_type_descriptor() throws RecognitionException { 5997 smaliTreeWalker.nonvoid_type_descriptor_return retval = new smaliTreeWalker.nonvoid_type_descriptor_return(); 5998 retval.start = input.LT(1); 5999 6000 try { 6001 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1150:3: ( ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) ) 6002 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1150:5: ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) 6003 { 6004 if ( input.LA(1)==ARRAY_DESCRIPTOR||input.LA(1)==CLASS_DESCRIPTOR||input.LA(1)==PRIMITIVE_TYPE ) { 6005 input.consume(); 6006 state.errorRecovery=false; 6007 } 6008 else { 6009 MismatchedSetException mse = new MismatchedSetException(null,input); 6010 throw mse; 6011 } 6012 6013 retval.type = ((CommonTree)retval.start).getText(); 6014 6015 } 6016 6017 } 6018 catch (RecognitionException re) { 6019 reportError(re); 6020 recover(input,re); 6021 } 6022 finally { 6023 // do for sure before leaving 6024 } 6025 return retval; 6026 } 6027 // $ANTLR end "nonvoid_type_descriptor" 6028 6029 6030 public static class reference_type_descriptor_return extends TreeRuleReturnScope { 6031 public String type; 6032 }; 6033 6034 6035 // $ANTLR start "reference_type_descriptor" 6036 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1157:1: reference_type_descriptor returns [String type] : ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) ; reference_type_descriptor()6037 public final smaliTreeWalker.reference_type_descriptor_return reference_type_descriptor() throws RecognitionException { 6038 smaliTreeWalker.reference_type_descriptor_return retval = new smaliTreeWalker.reference_type_descriptor_return(); 6039 retval.start = input.LT(1); 6040 6041 try { 6042 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1158:3: ( ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) ) 6043 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1158:5: ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) 6044 { 6045 if ( input.LA(1)==ARRAY_DESCRIPTOR||input.LA(1)==CLASS_DESCRIPTOR ) { 6046 input.consume(); 6047 state.errorRecovery=false; 6048 } 6049 else { 6050 MismatchedSetException mse = new MismatchedSetException(null,input); 6051 throw mse; 6052 } 6053 6054 retval.type = ((CommonTree)retval.start).getText(); 6055 6056 } 6057 6058 } 6059 catch (RecognitionException re) { 6060 reportError(re); 6061 recover(input,re); 6062 } 6063 finally { 6064 // do for sure before leaving 6065 } 6066 return retval; 6067 } 6068 // $ANTLR end "reference_type_descriptor" 6069 6070 6071 6072 // $ANTLR start "type_descriptor" 6073 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1164:1: type_descriptor returns [String type] : ( VOID_TYPE | nonvoid_type_descriptor ); type_descriptor()6074 public final String type_descriptor() throws RecognitionException { 6075 String type = null; 6076 6077 6078 TreeRuleReturnScope nonvoid_type_descriptor181 =null; 6079 6080 try { 6081 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1165:3: ( VOID_TYPE | nonvoid_type_descriptor ) 6082 int alt37=2; 6083 int LA37_0 = input.LA(1); 6084 if ( (LA37_0==VOID_TYPE) ) { 6085 alt37=1; 6086 } 6087 else if ( (LA37_0==ARRAY_DESCRIPTOR||LA37_0==CLASS_DESCRIPTOR||LA37_0==PRIMITIVE_TYPE) ) { 6088 alt37=2; 6089 } 6090 6091 else { 6092 NoViableAltException nvae = 6093 new NoViableAltException("", 37, 0, input); 6094 throw nvae; 6095 } 6096 6097 switch (alt37) { 6098 case 1 : 6099 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1165:5: VOID_TYPE 6100 { 6101 match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_descriptor3124); 6102 type = "V"; 6103 } 6104 break; 6105 case 2 : 6106 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1166:5: nonvoid_type_descriptor 6107 { 6108 pushFollow(FOLLOW_nonvoid_type_descriptor_in_type_descriptor3132); 6109 nonvoid_type_descriptor181=nonvoid_type_descriptor(); 6110 state._fsp--; 6111 6112 type = (nonvoid_type_descriptor181!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor181).type:null); 6113 } 6114 break; 6115 6116 } 6117 } 6118 catch (RecognitionException re) { 6119 reportError(re); 6120 recover(input,re); 6121 } 6122 finally { 6123 // do for sure before leaving 6124 } 6125 return type; 6126 } 6127 // $ANTLR end "type_descriptor" 6128 6129 6130 6131 // $ANTLR start "short_integral_literal" 6132 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1169:1: short_integral_literal returns [short value] : ( long_literal | integer_literal | short_literal | char_literal | byte_literal ); short_integral_literal()6133 public final short short_integral_literal() throws RecognitionException { 6134 short value = 0; 6135 6136 6137 long long_literal182 =0; 6138 int integer_literal183 =0; 6139 short short_literal184 =0; 6140 char char_literal185 =0; 6141 byte byte_literal186 =0; 6142 6143 try { 6144 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1170:3: ( long_literal | integer_literal | short_literal | char_literal | byte_literal ) 6145 int alt38=5; 6146 switch ( input.LA(1) ) { 6147 case LONG_LITERAL: 6148 { 6149 alt38=1; 6150 } 6151 break; 6152 case INTEGER_LITERAL: 6153 { 6154 alt38=2; 6155 } 6156 break; 6157 case SHORT_LITERAL: 6158 { 6159 alt38=3; 6160 } 6161 break; 6162 case CHAR_LITERAL: 6163 { 6164 alt38=4; 6165 } 6166 break; 6167 case BYTE_LITERAL: 6168 { 6169 alt38=5; 6170 } 6171 break; 6172 default: 6173 NoViableAltException nvae = 6174 new NoViableAltException("", 38, 0, input); 6175 throw nvae; 6176 } 6177 switch (alt38) { 6178 case 1 : 6179 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1170:5: long_literal 6180 { 6181 pushFollow(FOLLOW_long_literal_in_short_integral_literal3150); 6182 long_literal182=long_literal(); 6183 state._fsp--; 6184 6185 6186 LiteralTools.checkShort(long_literal182); 6187 value = (short)long_literal182; 6188 6189 } 6190 break; 6191 case 2 : 6192 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1175:5: integer_literal 6193 { 6194 pushFollow(FOLLOW_integer_literal_in_short_integral_literal3162); 6195 integer_literal183=integer_literal(); 6196 state._fsp--; 6197 6198 6199 LiteralTools.checkShort(integer_literal183); 6200 value = (short)integer_literal183; 6201 6202 } 6203 break; 6204 case 3 : 6205 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1180:5: short_literal 6206 { 6207 pushFollow(FOLLOW_short_literal_in_short_integral_literal3174); 6208 short_literal184=short_literal(); 6209 state._fsp--; 6210 6211 value = short_literal184; 6212 } 6213 break; 6214 case 4 : 6215 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1181:5: char_literal 6216 { 6217 pushFollow(FOLLOW_char_literal_in_short_integral_literal3182); 6218 char_literal185=char_literal(); 6219 state._fsp--; 6220 6221 value = (short)char_literal185; 6222 } 6223 break; 6224 case 5 : 6225 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1182:5: byte_literal 6226 { 6227 pushFollow(FOLLOW_byte_literal_in_short_integral_literal3190); 6228 byte_literal186=byte_literal(); 6229 state._fsp--; 6230 6231 value = byte_literal186; 6232 } 6233 break; 6234 6235 } 6236 } 6237 catch (RecognitionException re) { 6238 reportError(re); 6239 recover(input,re); 6240 } 6241 finally { 6242 // do for sure before leaving 6243 } 6244 return value; 6245 } 6246 // $ANTLR end "short_integral_literal" 6247 6248 6249 6250 // $ANTLR start "integral_literal" 6251 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1184:1: integral_literal returns [int value] : ( long_literal | integer_literal | short_literal | byte_literal ); integral_literal()6252 public final int integral_literal() throws RecognitionException { 6253 int value = 0; 6254 6255 6256 long long_literal187 =0; 6257 int integer_literal188 =0; 6258 short short_literal189 =0; 6259 byte byte_literal190 =0; 6260 6261 try { 6262 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1185:3: ( long_literal | integer_literal | short_literal | byte_literal ) 6263 int alt39=4; 6264 switch ( input.LA(1) ) { 6265 case LONG_LITERAL: 6266 { 6267 alt39=1; 6268 } 6269 break; 6270 case INTEGER_LITERAL: 6271 { 6272 alt39=2; 6273 } 6274 break; 6275 case SHORT_LITERAL: 6276 { 6277 alt39=3; 6278 } 6279 break; 6280 case BYTE_LITERAL: 6281 { 6282 alt39=4; 6283 } 6284 break; 6285 default: 6286 NoViableAltException nvae = 6287 new NoViableAltException("", 39, 0, input); 6288 throw nvae; 6289 } 6290 switch (alt39) { 6291 case 1 : 6292 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1185:5: long_literal 6293 { 6294 pushFollow(FOLLOW_long_literal_in_integral_literal3205); 6295 long_literal187=long_literal(); 6296 state._fsp--; 6297 6298 6299 LiteralTools.checkInt(long_literal187); 6300 value = (int)long_literal187; 6301 6302 } 6303 break; 6304 case 2 : 6305 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1190:5: integer_literal 6306 { 6307 pushFollow(FOLLOW_integer_literal_in_integral_literal3217); 6308 integer_literal188=integer_literal(); 6309 state._fsp--; 6310 6311 value = integer_literal188; 6312 } 6313 break; 6314 case 3 : 6315 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1191:5: short_literal 6316 { 6317 pushFollow(FOLLOW_short_literal_in_integral_literal3225); 6318 short_literal189=short_literal(); 6319 state._fsp--; 6320 6321 value = short_literal189; 6322 } 6323 break; 6324 case 4 : 6325 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1192:5: byte_literal 6326 { 6327 pushFollow(FOLLOW_byte_literal_in_integral_literal3233); 6328 byte_literal190=byte_literal(); 6329 state._fsp--; 6330 6331 value = byte_literal190; 6332 } 6333 break; 6334 6335 } 6336 } 6337 catch (RecognitionException re) { 6338 reportError(re); 6339 recover(input,re); 6340 } 6341 finally { 6342 // do for sure before leaving 6343 } 6344 return value; 6345 } 6346 // $ANTLR end "integral_literal" 6347 6348 6349 6350 // $ANTLR start "integer_literal" 6351 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1195:1: integer_literal returns [int value] : INTEGER_LITERAL ; integer_literal()6352 public final int integer_literal() throws RecognitionException { 6353 int value = 0; 6354 6355 6356 CommonTree INTEGER_LITERAL191=null; 6357 6358 try { 6359 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1196:3: ( INTEGER_LITERAL ) 6360 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1196:5: INTEGER_LITERAL 6361 { 6362 INTEGER_LITERAL191=(CommonTree)match(input,INTEGER_LITERAL,FOLLOW_INTEGER_LITERAL_in_integer_literal3249); 6363 value = LiteralTools.parseInt((INTEGER_LITERAL191!=null?INTEGER_LITERAL191.getText():null)); 6364 } 6365 6366 } 6367 catch (RecognitionException re) { 6368 reportError(re); 6369 recover(input,re); 6370 } 6371 finally { 6372 // do for sure before leaving 6373 } 6374 return value; 6375 } 6376 // $ANTLR end "integer_literal" 6377 6378 6379 6380 // $ANTLR start "long_literal" 6381 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1198:1: long_literal returns [long value] : LONG_LITERAL ; long_literal()6382 public final long long_literal() throws RecognitionException { 6383 long value = 0; 6384 6385 6386 CommonTree LONG_LITERAL192=null; 6387 6388 try { 6389 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1199:3: ( LONG_LITERAL ) 6390 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1199:5: LONG_LITERAL 6391 { 6392 LONG_LITERAL192=(CommonTree)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_long_literal3264); 6393 value = LiteralTools.parseLong((LONG_LITERAL192!=null?LONG_LITERAL192.getText():null)); 6394 } 6395 6396 } 6397 catch (RecognitionException re) { 6398 reportError(re); 6399 recover(input,re); 6400 } 6401 finally { 6402 // do for sure before leaving 6403 } 6404 return value; 6405 } 6406 // $ANTLR end "long_literal" 6407 6408 6409 6410 // $ANTLR start "short_literal" 6411 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1201:1: short_literal returns [short value] : SHORT_LITERAL ; short_literal()6412 public final short short_literal() throws RecognitionException { 6413 short value = 0; 6414 6415 6416 CommonTree SHORT_LITERAL193=null; 6417 6418 try { 6419 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1202:3: ( SHORT_LITERAL ) 6420 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1202:5: SHORT_LITERAL 6421 { 6422 SHORT_LITERAL193=(CommonTree)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_short_literal3279); 6423 value = LiteralTools.parseShort((SHORT_LITERAL193!=null?SHORT_LITERAL193.getText():null)); 6424 } 6425 6426 } 6427 catch (RecognitionException re) { 6428 reportError(re); 6429 recover(input,re); 6430 } 6431 finally { 6432 // do for sure before leaving 6433 } 6434 return value; 6435 } 6436 // $ANTLR end "short_literal" 6437 6438 6439 6440 // $ANTLR start "byte_literal" 6441 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1204:1: byte_literal returns [byte value] : BYTE_LITERAL ; byte_literal()6442 public final byte byte_literal() throws RecognitionException { 6443 byte value = 0; 6444 6445 6446 CommonTree BYTE_LITERAL194=null; 6447 6448 try { 6449 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1205:3: ( BYTE_LITERAL ) 6450 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1205:5: BYTE_LITERAL 6451 { 6452 BYTE_LITERAL194=(CommonTree)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_byte_literal3294); 6453 value = LiteralTools.parseByte((BYTE_LITERAL194!=null?BYTE_LITERAL194.getText():null)); 6454 } 6455 6456 } 6457 catch (RecognitionException re) { 6458 reportError(re); 6459 recover(input,re); 6460 } 6461 finally { 6462 // do for sure before leaving 6463 } 6464 return value; 6465 } 6466 // $ANTLR end "byte_literal" 6467 6468 6469 6470 // $ANTLR start "float_literal" 6471 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1207:1: float_literal returns [float value] : FLOAT_LITERAL ; float_literal()6472 public final float float_literal() throws RecognitionException { 6473 float value = 0.0f; 6474 6475 6476 CommonTree FLOAT_LITERAL195=null; 6477 6478 try { 6479 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1208:3: ( FLOAT_LITERAL ) 6480 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1208:5: FLOAT_LITERAL 6481 { 6482 FLOAT_LITERAL195=(CommonTree)match(input,FLOAT_LITERAL,FOLLOW_FLOAT_LITERAL_in_float_literal3309); 6483 value = LiteralTools.parseFloat((FLOAT_LITERAL195!=null?FLOAT_LITERAL195.getText():null)); 6484 } 6485 6486 } 6487 catch (RecognitionException re) { 6488 reportError(re); 6489 recover(input,re); 6490 } 6491 finally { 6492 // do for sure before leaving 6493 } 6494 return value; 6495 } 6496 // $ANTLR end "float_literal" 6497 6498 6499 6500 // $ANTLR start "double_literal" 6501 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1210:1: double_literal returns [double value] : DOUBLE_LITERAL ; double_literal()6502 public final double double_literal() throws RecognitionException { 6503 double value = 0.0; 6504 6505 6506 CommonTree DOUBLE_LITERAL196=null; 6507 6508 try { 6509 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1211:3: ( DOUBLE_LITERAL ) 6510 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1211:5: DOUBLE_LITERAL 6511 { 6512 DOUBLE_LITERAL196=(CommonTree)match(input,DOUBLE_LITERAL,FOLLOW_DOUBLE_LITERAL_in_double_literal3324); 6513 value = LiteralTools.parseDouble((DOUBLE_LITERAL196!=null?DOUBLE_LITERAL196.getText():null)); 6514 } 6515 6516 } 6517 catch (RecognitionException re) { 6518 reportError(re); 6519 recover(input,re); 6520 } 6521 finally { 6522 // do for sure before leaving 6523 } 6524 return value; 6525 } 6526 // $ANTLR end "double_literal" 6527 6528 6529 6530 // $ANTLR start "char_literal" 6531 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1213:1: char_literal returns [char value] : CHAR_LITERAL ; char_literal()6532 public final char char_literal() throws RecognitionException { 6533 char value = 0; 6534 6535 6536 CommonTree CHAR_LITERAL197=null; 6537 6538 try { 6539 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1214:3: ( CHAR_LITERAL ) 6540 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1214:5: CHAR_LITERAL 6541 { 6542 CHAR_LITERAL197=(CommonTree)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_char_literal3339); 6543 value = (CHAR_LITERAL197!=null?CHAR_LITERAL197.getText():null).charAt(1); 6544 } 6545 6546 } 6547 catch (RecognitionException re) { 6548 reportError(re); 6549 recover(input,re); 6550 } 6551 finally { 6552 // do for sure before leaving 6553 } 6554 return value; 6555 } 6556 // $ANTLR end "char_literal" 6557 6558 6559 6560 // $ANTLR start "string_literal" 6561 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1216:1: string_literal returns [String value] : STRING_LITERAL ; string_literal()6562 public final String string_literal() throws RecognitionException { 6563 String value = null; 6564 6565 6566 CommonTree STRING_LITERAL198=null; 6567 6568 try { 6569 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1217:3: ( STRING_LITERAL ) 6570 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1217:5: STRING_LITERAL 6571 { 6572 STRING_LITERAL198=(CommonTree)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_string_literal3354); 6573 6574 value = (STRING_LITERAL198!=null?STRING_LITERAL198.getText():null); 6575 value = value.substring(1,value.length()-1); 6576 6577 } 6578 6579 } 6580 catch (RecognitionException re) { 6581 reportError(re); 6582 recover(input,re); 6583 } 6584 finally { 6585 // do for sure before leaving 6586 } 6587 return value; 6588 } 6589 // $ANTLR end "string_literal" 6590 6591 6592 6593 // $ANTLR start "bool_literal" 6594 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1223:1: bool_literal returns [boolean value] : BOOL_LITERAL ; bool_literal()6595 public final boolean bool_literal() throws RecognitionException { 6596 boolean value = false; 6597 6598 6599 CommonTree BOOL_LITERAL199=null; 6600 6601 try { 6602 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1224:3: ( BOOL_LITERAL ) 6603 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1224:5: BOOL_LITERAL 6604 { 6605 BOOL_LITERAL199=(CommonTree)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_bool_literal3373); 6606 value = Boolean.parseBoolean((BOOL_LITERAL199!=null?BOOL_LITERAL199.getText():null)); 6607 } 6608 6609 } 6610 catch (RecognitionException re) { 6611 reportError(re); 6612 recover(input,re); 6613 } 6614 finally { 6615 // do for sure before leaving 6616 } 6617 return value; 6618 } 6619 // $ANTLR end "bool_literal" 6620 6621 6622 6623 // $ANTLR start "array_literal" 6624 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1226:1: array_literal returns [List<EncodedValue> elements] : ^( I_ENCODED_ARRAY ( literal )* ) ; array_literal()6625 public final List<EncodedValue> array_literal() throws RecognitionException { 6626 List<EncodedValue> elements = null; 6627 6628 6629 EncodedValue literal200 =null; 6630 6631 try { 6632 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1227:3: ( ^( I_ENCODED_ARRAY ( literal )* ) ) 6633 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1227:5: ^( I_ENCODED_ARRAY ( literal )* ) 6634 { 6635 elements = Lists.newArrayList(); 6636 match(input,I_ENCODED_ARRAY,FOLLOW_I_ENCODED_ARRAY_in_array_literal3395); 6637 if ( input.LA(1)==Token.DOWN ) { 6638 match(input, Token.DOWN, null); 6639 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1228:23: ( literal )* 6640 loop40: 6641 while (true) { 6642 int alt40=2; 6643 int LA40_0 = input.LA(1); 6644 if ( (LA40_0==ARRAY_DESCRIPTOR||(LA40_0 >= BOOL_LITERAL && LA40_0 <= BYTE_LITERAL)||(LA40_0 >= CHAR_LITERAL && LA40_0 <= CLASS_DESCRIPTOR)||LA40_0==DOUBLE_LITERAL||LA40_0==FLOAT_LITERAL||LA40_0==INTEGER_LITERAL||(LA40_0 >= I_ENCODED_ARRAY && LA40_0 <= I_ENCODED_METHOD)||LA40_0==I_SUBANNOTATION||LA40_0==LONG_LITERAL||LA40_0==NULL_LITERAL||LA40_0==PRIMITIVE_TYPE||LA40_0==SHORT_LITERAL||LA40_0==STRING_LITERAL||LA40_0==VOID_TYPE) ) { 6645 alt40=1; 6646 } 6647 6648 switch (alt40) { 6649 case 1 : 6650 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1228:24: literal 6651 { 6652 pushFollow(FOLLOW_literal_in_array_literal3398); 6653 literal200=literal(); 6654 state._fsp--; 6655 6656 elements.add(literal200); 6657 } 6658 break; 6659 6660 default : 6661 break loop40; 6662 } 6663 } 6664 6665 match(input, Token.UP, null); 6666 } 6667 6668 } 6669 6670 } 6671 catch (RecognitionException re) { 6672 reportError(re); 6673 recover(input,re); 6674 } 6675 finally { 6676 // do for sure before leaving 6677 } 6678 return elements; 6679 } 6680 // $ANTLR end "array_literal" 6681 6682 6683 6684 // $ANTLR start "annotations" 6685 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1230:1: annotations returns [Set<Annotation> annotations] : ^( I_ANNOTATIONS ( annotation )* ) ; annotations()6686 public final Set<Annotation> annotations() throws RecognitionException { 6687 Set<Annotation> annotations = null; 6688 6689 6690 Annotation annotation201 =null; 6691 6692 try { 6693 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1231:3: ( ^( I_ANNOTATIONS ( annotation )* ) ) 6694 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1231:5: ^( I_ANNOTATIONS ( annotation )* ) 6695 { 6696 HashMap<String, Annotation> annotationMap = Maps.newHashMap(); 6697 match(input,I_ANNOTATIONS,FOLLOW_I_ANNOTATIONS_in_annotations3423); 6698 if ( input.LA(1)==Token.DOWN ) { 6699 match(input, Token.DOWN, null); 6700 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1232:21: ( annotation )* 6701 loop41: 6702 while (true) { 6703 int alt41=2; 6704 int LA41_0 = input.LA(1); 6705 if ( (LA41_0==I_ANNOTATION) ) { 6706 alt41=1; 6707 } 6708 6709 switch (alt41) { 6710 case 1 : 6711 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1232:22: annotation 6712 { 6713 pushFollow(FOLLOW_annotation_in_annotations3426); 6714 annotation201=annotation(); 6715 state._fsp--; 6716 6717 6718 Annotation anno = annotation201; 6719 Annotation old = annotationMap.put(anno.getType(), anno); 6720 if (old != null) { 6721 throw new SemanticException(input, "Multiple annotations of type %s", anno.getType()); 6722 } 6723 6724 } 6725 break; 6726 6727 default : 6728 break loop41; 6729 } 6730 } 6731 6732 match(input, Token.UP, null); 6733 } 6734 6735 6736 if (annotationMap.size() > 0) { 6737 annotations = ImmutableSet.copyOf(annotationMap.values()); 6738 } 6739 6740 } 6741 6742 } 6743 catch (RecognitionException re) { 6744 reportError(re); 6745 recover(input,re); 6746 } 6747 finally { 6748 // do for sure before leaving 6749 } 6750 return annotations; 6751 } 6752 // $ANTLR end "annotations" 6753 6754 6755 6756 // $ANTLR start "annotation" 6757 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1246:1: annotation returns [Annotation annotation] : ^( I_ANNOTATION ANNOTATION_VISIBILITY subannotation ) ; annotation()6758 public final Annotation annotation() throws RecognitionException { 6759 Annotation annotation = null; 6760 6761 6762 CommonTree ANNOTATION_VISIBILITY202=null; 6763 TreeRuleReturnScope subannotation203 =null; 6764 6765 try { 6766 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1247:3: ( ^( I_ANNOTATION ANNOTATION_VISIBILITY subannotation ) ) 6767 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1247:5: ^( I_ANNOTATION ANNOTATION_VISIBILITY subannotation ) 6768 { 6769 match(input,I_ANNOTATION,FOLLOW_I_ANNOTATION_in_annotation3455); 6770 match(input, Token.DOWN, null); 6771 ANNOTATION_VISIBILITY202=(CommonTree)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_annotation3457); 6772 pushFollow(FOLLOW_subannotation_in_annotation3459); 6773 subannotation203=subannotation(); 6774 state._fsp--; 6775 6776 match(input, Token.UP, null); 6777 6778 6779 int visibility = AnnotationVisibility.getVisibility((ANNOTATION_VISIBILITY202!=null?ANNOTATION_VISIBILITY202.getText():null)); 6780 annotation = new ImmutableAnnotation(visibility, (subannotation203!=null?((smaliTreeWalker.subannotation_return)subannotation203).annotationType:null), (subannotation203!=null?((smaliTreeWalker.subannotation_return)subannotation203).elements:null)); 6781 6782 } 6783 6784 } 6785 catch (RecognitionException re) { 6786 reportError(re); 6787 recover(input,re); 6788 } 6789 finally { 6790 // do for sure before leaving 6791 } 6792 return annotation; 6793 } 6794 // $ANTLR end "annotation" 6795 6796 6797 6798 // $ANTLR start "annotation_element" 6799 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1253:1: annotation_element returns [AnnotationElement element] : ^( I_ANNOTATION_ELEMENT SIMPLE_NAME literal ) ; annotation_element()6800 public final AnnotationElement annotation_element() throws RecognitionException { 6801 AnnotationElement element = null; 6802 6803 6804 CommonTree SIMPLE_NAME204=null; 6805 EncodedValue literal205 =null; 6806 6807 try { 6808 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1254:3: ( ^( I_ANNOTATION_ELEMENT SIMPLE_NAME literal ) ) 6809 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1254:5: ^( I_ANNOTATION_ELEMENT SIMPLE_NAME literal ) 6810 { 6811 match(input,I_ANNOTATION_ELEMENT,FOLLOW_I_ANNOTATION_ELEMENT_in_annotation_element3480); 6812 match(input, Token.DOWN, null); 6813 SIMPLE_NAME204=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_annotation_element3482); 6814 pushFollow(FOLLOW_literal_in_annotation_element3484); 6815 literal205=literal(); 6816 state._fsp--; 6817 6818 match(input, Token.UP, null); 6819 6820 6821 element = new ImmutableAnnotationElement((SIMPLE_NAME204!=null?SIMPLE_NAME204.getText():null), literal205); 6822 6823 } 6824 6825 } 6826 catch (RecognitionException re) { 6827 reportError(re); 6828 recover(input,re); 6829 } 6830 finally { 6831 // do for sure before leaving 6832 } 6833 return element; 6834 } 6835 // $ANTLR end "annotation_element" 6836 6837 6838 public static class subannotation_return extends TreeRuleReturnScope { 6839 public String annotationType; 6840 public List<AnnotationElement> elements; 6841 }; 6842 6843 6844 // $ANTLR start "subannotation" 6845 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1259:1: subannotation returns [String annotationType, List<AnnotationElement> elements] : ^( I_SUBANNOTATION CLASS_DESCRIPTOR ( annotation_element )* ) ; subannotation()6846 public final smaliTreeWalker.subannotation_return subannotation() throws RecognitionException { 6847 smaliTreeWalker.subannotation_return retval = new smaliTreeWalker.subannotation_return(); 6848 retval.start = input.LT(1); 6849 6850 CommonTree CLASS_DESCRIPTOR207=null; 6851 AnnotationElement annotation_element206 =null; 6852 6853 try { 6854 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1260:3: ( ^( I_SUBANNOTATION CLASS_DESCRIPTOR ( annotation_element )* ) ) 6855 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1260:5: ^( I_SUBANNOTATION CLASS_DESCRIPTOR ( annotation_element )* ) 6856 { 6857 ArrayList<AnnotationElement> elements = Lists.newArrayList(); 6858 match(input,I_SUBANNOTATION,FOLLOW_I_SUBANNOTATION_in_subannotation3511); 6859 match(input, Token.DOWN, null); 6860 CLASS_DESCRIPTOR207=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_subannotation3521); 6861 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1263:9: ( annotation_element )* 6862 loop42: 6863 while (true) { 6864 int alt42=2; 6865 int LA42_0 = input.LA(1); 6866 if ( (LA42_0==I_ANNOTATION_ELEMENT) ) { 6867 alt42=1; 6868 } 6869 6870 switch (alt42) { 6871 case 1 : 6872 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1263:10: annotation_element 6873 { 6874 pushFollow(FOLLOW_annotation_element_in_subannotation3532); 6875 annotation_element206=annotation_element(); 6876 state._fsp--; 6877 6878 6879 elements.add(annotation_element206); 6880 6881 } 6882 break; 6883 6884 default : 6885 break loop42; 6886 } 6887 } 6888 6889 match(input, Token.UP, null); 6890 6891 6892 retval.annotationType = (CLASS_DESCRIPTOR207!=null?CLASS_DESCRIPTOR207.getText():null); 6893 retval.elements = elements; 6894 6895 } 6896 6897 } 6898 catch (RecognitionException re) { 6899 reportError(re); 6900 recover(input,re); 6901 } 6902 finally { 6903 // do for sure before leaving 6904 } 6905 return retval; 6906 } 6907 // $ANTLR end "subannotation" 6908 6909 6910 6911 // $ANTLR start "field_literal" 6912 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1273:1: field_literal returns [FieldReference value] : ^( I_ENCODED_FIELD field_reference ) ; field_literal()6913 public final FieldReference field_literal() throws RecognitionException { 6914 FieldReference value = null; 6915 6916 6917 ImmutableFieldReference field_reference208 =null; 6918 6919 try { 6920 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1274:3: ( ^( I_ENCODED_FIELD field_reference ) ) 6921 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1274:5: ^( I_ENCODED_FIELD field_reference ) 6922 { 6923 match(input,I_ENCODED_FIELD,FOLLOW_I_ENCODED_FIELD_in_field_literal3571); 6924 match(input, Token.DOWN, null); 6925 pushFollow(FOLLOW_field_reference_in_field_literal3573); 6926 field_reference208=field_reference(); 6927 state._fsp--; 6928 6929 match(input, Token.UP, null); 6930 6931 6932 value = field_reference208; 6933 6934 } 6935 6936 } 6937 catch (RecognitionException re) { 6938 reportError(re); 6939 recover(input,re); 6940 } 6941 finally { 6942 // do for sure before leaving 6943 } 6944 return value; 6945 } 6946 // $ANTLR end "field_literal" 6947 6948 6949 6950 // $ANTLR start "method_literal" 6951 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1279:1: method_literal returns [MethodReference value] : ^( I_ENCODED_METHOD method_reference ) ; method_literal()6952 public final MethodReference method_literal() throws RecognitionException { 6953 MethodReference value = null; 6954 6955 6956 ImmutableMethodReference method_reference209 =null; 6957 6958 try { 6959 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1280:3: ( ^( I_ENCODED_METHOD method_reference ) ) 6960 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1280:5: ^( I_ENCODED_METHOD method_reference ) 6961 { 6962 match(input,I_ENCODED_METHOD,FOLLOW_I_ENCODED_METHOD_in_method_literal3594); 6963 match(input, Token.DOWN, null); 6964 pushFollow(FOLLOW_method_reference_in_method_literal3596); 6965 method_reference209=method_reference(); 6966 state._fsp--; 6967 6968 match(input, Token.UP, null); 6969 6970 6971 value = method_reference209; 6972 6973 } 6974 6975 } 6976 catch (RecognitionException re) { 6977 reportError(re); 6978 recover(input,re); 6979 } 6980 finally { 6981 // do for sure before leaving 6982 } 6983 return value; 6984 } 6985 // $ANTLR end "method_literal" 6986 6987 6988 6989 // $ANTLR start "enum_literal" 6990 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1285:1: enum_literal returns [FieldReference value] : ^( I_ENCODED_ENUM field_reference ) ; enum_literal()6991 public final FieldReference enum_literal() throws RecognitionException { 6992 FieldReference value = null; 6993 6994 6995 ImmutableFieldReference field_reference210 =null; 6996 6997 try { 6998 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1286:3: ( ^( I_ENCODED_ENUM field_reference ) ) 6999 // /mnt/ssd1/workspace/aosp_master/external/smali/smali/src/main/antlr3/smaliTreeWalker.g:1286:5: ^( I_ENCODED_ENUM field_reference ) 7000 { 7001 match(input,I_ENCODED_ENUM,FOLLOW_I_ENCODED_ENUM_in_enum_literal3617); 7002 match(input, Token.DOWN, null); 7003 pushFollow(FOLLOW_field_reference_in_enum_literal3619); 7004 field_reference210=field_reference(); 7005 state._fsp--; 7006 7007 match(input, Token.UP, null); 7008 7009 7010 value = field_reference210; 7011 7012 } 7013 7014 } 7015 catch (RecognitionException re) { 7016 reportError(re); 7017 recover(input,re); 7018 } 7019 finally { 7020 // do for sure before leaving 7021 } 7022 return value; 7023 } 7024 // $ANTLR end "enum_literal" 7025 7026 // Delegated rules 7027 7028 7029 7030 public static final BitSet FOLLOW_I_CLASS_DEF_in_smali_file52 = new BitSet(new long[]{0x0000000000000004L}); 7031 public static final BitSet FOLLOW_header_in_smali_file54 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L}); 7032 public static final BitSet FOLLOW_methods_in_smali_file56 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L}); 7033 public static final BitSet FOLLOW_fields_in_smali_file58 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L}); 7034 public static final BitSet FOLLOW_annotations_in_smali_file60 = new BitSet(new long[]{0x0000000000000008L}); 7035 public static final BitSet FOLLOW_class_spec_in_header85 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L,0x0000002000000001L}); 7036 public static final BitSet FOLLOW_super_spec_in_header87 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L,0x0000000000000001L}); 7037 public static final BitSet FOLLOW_implements_list_in_header90 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L}); 7038 public static final BitSet FOLLOW_source_spec_in_header92 = new BitSet(new long[]{0x0000000000000002L}); 7039 public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_class_spec110 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); 7040 public static final BitSet FOLLOW_access_list_in_class_spec112 = new BitSet(new long[]{0x0000000000000002L}); 7041 public static final BitSet FOLLOW_I_SUPER_in_super_spec130 = new BitSet(new long[]{0x0000000000000004L}); 7042 public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_super_spec132 = new BitSet(new long[]{0x0000000000000008L}); 7043 public static final BitSet FOLLOW_I_IMPLEMENTS_in_implements_spec152 = new BitSet(new long[]{0x0000000000000004L}); 7044 public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_implements_spec154 = new BitSet(new long[]{0x0000000000000008L}); 7045 public static final BitSet FOLLOW_implements_spec_in_implements_list184 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L}); 7046 public static final BitSet FOLLOW_I_SOURCE_in_source_spec213 = new BitSet(new long[]{0x0000000000000004L}); 7047 public static final BitSet FOLLOW_string_literal_in_source_spec215 = new BitSet(new long[]{0x0000000000000008L}); 7048 public static final BitSet FOLLOW_I_ACCESS_LIST_in_access_list248 = new BitSet(new long[]{0x0000000000000004L}); 7049 public static final BitSet FOLLOW_ACCESS_SPEC_in_access_list266 = new BitSet(new long[]{0x0000000000000018L}); 7050 public static final BitSet FOLLOW_I_FIELDS_in_fields308 = new BitSet(new long[]{0x0000000000000004L}); 7051 public static final BitSet FOLLOW_field_in_fields317 = new BitSet(new long[]{0x0000000000000008L,0x0000010000000000L}); 7052 public static final BitSet FOLLOW_I_METHODS_in_methods349 = new BitSet(new long[]{0x0000000000000004L}); 7053 public static final BitSet FOLLOW_method_in_methods358 = new BitSet(new long[]{0x0000000000000008L,0x0002000000000000L}); 7054 public static final BitSet FOLLOW_I_FIELD_in_field383 = new BitSet(new long[]{0x0000000000000004L}); 7055 public static final BitSet FOLLOW_SIMPLE_NAME_in_field385 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); 7056 public static final BitSet FOLLOW_access_list_in_field387 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L}); 7057 public static final BitSet FOLLOW_I_FIELD_TYPE_in_field390 = new BitSet(new long[]{0x0000000000000004L}); 7058 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field392 = new BitSet(new long[]{0x0000000000000008L}); 7059 public static final BitSet FOLLOW_field_initial_value_in_field395 = new BitSet(new long[]{0x0000000000000008L,0x0000000004000000L}); 7060 public static final BitSet FOLLOW_annotations_in_field397 = new BitSet(new long[]{0x0000000000000008L}); 7061 public static final BitSet FOLLOW_I_FIELD_INITIAL_VALUE_in_field_initial_value418 = new BitSet(new long[]{0x0000000000000004L}); 7062 public static final BitSet FOLLOW_literal_in_field_initial_value420 = new BitSet(new long[]{0x0000000000000008L}); 7063 public static final BitSet FOLLOW_integer_literal_in_literal442 = new BitSet(new long[]{0x0000000000000002L}); 7064 public static final BitSet FOLLOW_long_literal_in_literal450 = new BitSet(new long[]{0x0000000000000002L}); 7065 public static final BitSet FOLLOW_short_literal_in_literal458 = new BitSet(new long[]{0x0000000000000002L}); 7066 public static final BitSet FOLLOW_byte_literal_in_literal466 = new BitSet(new long[]{0x0000000000000002L}); 7067 public static final BitSet FOLLOW_float_literal_in_literal474 = new BitSet(new long[]{0x0000000000000002L}); 7068 public static final BitSet FOLLOW_double_literal_in_literal482 = new BitSet(new long[]{0x0000000000000002L}); 7069 public static final BitSet FOLLOW_char_literal_in_literal490 = new BitSet(new long[]{0x0000000000000002L}); 7070 public static final BitSet FOLLOW_string_literal_in_literal498 = new BitSet(new long[]{0x0000000000000002L}); 7071 public static final BitSet FOLLOW_bool_literal_in_literal506 = new BitSet(new long[]{0x0000000000000002L}); 7072 public static final BitSet FOLLOW_NULL_LITERAL_in_literal514 = new BitSet(new long[]{0x0000000000000002L}); 7073 public static final BitSet FOLLOW_type_descriptor_in_literal522 = new BitSet(new long[]{0x0000000000000002L}); 7074 public static final BitSet FOLLOW_array_literal_in_literal530 = new BitSet(new long[]{0x0000000000000002L}); 7075 public static final BitSet FOLLOW_subannotation_in_literal538 = new BitSet(new long[]{0x0000000000000002L}); 7076 public static final BitSet FOLLOW_field_literal_in_literal546 = new BitSet(new long[]{0x0000000000000002L}); 7077 public static final BitSet FOLLOW_method_literal_in_literal554 = new BitSet(new long[]{0x0000000000000002L}); 7078 public static final BitSet FOLLOW_enum_literal_in_literal562 = new BitSet(new long[]{0x0000000000000002L}); 7079 public static final BitSet FOLLOW_integer_literal_in_fixed_64bit_literal_number578 = new BitSet(new long[]{0x0000000000000002L}); 7080 public static final BitSet FOLLOW_long_literal_in_fixed_64bit_literal_number586 = new BitSet(new long[]{0x0000000000000002L}); 7081 public static final BitSet FOLLOW_short_literal_in_fixed_64bit_literal_number594 = new BitSet(new long[]{0x0000000000000002L}); 7082 public static final BitSet FOLLOW_byte_literal_in_fixed_64bit_literal_number602 = new BitSet(new long[]{0x0000000000000002L}); 7083 public static final BitSet FOLLOW_float_literal_in_fixed_64bit_literal_number610 = new BitSet(new long[]{0x0000000000000002L}); 7084 public static final BitSet FOLLOW_double_literal_in_fixed_64bit_literal_number618 = new BitSet(new long[]{0x0000000000000002L}); 7085 public static final BitSet FOLLOW_char_literal_in_fixed_64bit_literal_number626 = new BitSet(new long[]{0x0000000000000002L}); 7086 public static final BitSet FOLLOW_bool_literal_in_fixed_64bit_literal_number634 = new BitSet(new long[]{0x0000000000000002L}); 7087 public static final BitSet FOLLOW_integer_literal_in_fixed_64bit_literal649 = new BitSet(new long[]{0x0000000000000002L}); 7088 public static final BitSet FOLLOW_long_literal_in_fixed_64bit_literal657 = new BitSet(new long[]{0x0000000000000002L}); 7089 public static final BitSet FOLLOW_short_literal_in_fixed_64bit_literal665 = new BitSet(new long[]{0x0000000000000002L}); 7090 public static final BitSet FOLLOW_byte_literal_in_fixed_64bit_literal673 = new BitSet(new long[]{0x0000000000000002L}); 7091 public static final BitSet FOLLOW_float_literal_in_fixed_64bit_literal681 = new BitSet(new long[]{0x0000000000000002L}); 7092 public static final BitSet FOLLOW_double_literal_in_fixed_64bit_literal689 = new BitSet(new long[]{0x0000000000000002L}); 7093 public static final BitSet FOLLOW_char_literal_in_fixed_64bit_literal697 = new BitSet(new long[]{0x0000000000000002L}); 7094 public static final BitSet FOLLOW_bool_literal_in_fixed_64bit_literal705 = new BitSet(new long[]{0x0000000000000002L}); 7095 public static final BitSet FOLLOW_integer_literal_in_fixed_32bit_literal722 = new BitSet(new long[]{0x0000000000000002L}); 7096 public static final BitSet FOLLOW_long_literal_in_fixed_32bit_literal730 = new BitSet(new long[]{0x0000000000000002L}); 7097 public static final BitSet FOLLOW_short_literal_in_fixed_32bit_literal738 = new BitSet(new long[]{0x0000000000000002L}); 7098 public static final BitSet FOLLOW_byte_literal_in_fixed_32bit_literal746 = new BitSet(new long[]{0x0000000000000002L}); 7099 public static final BitSet FOLLOW_float_literal_in_fixed_32bit_literal754 = new BitSet(new long[]{0x0000000000000002L}); 7100 public static final BitSet FOLLOW_char_literal_in_fixed_32bit_literal762 = new BitSet(new long[]{0x0000000000000002L}); 7101 public static final BitSet FOLLOW_bool_literal_in_fixed_32bit_literal770 = new BitSet(new long[]{0x0000000000000002L}); 7102 public static final BitSet FOLLOW_I_ARRAY_ELEMENTS_in_array_elements792 = new BitSet(new long[]{0x0000000000000004L}); 7103 public static final BitSet FOLLOW_fixed_64bit_literal_number_in_array_elements801 = new BitSet(new long[]{0x0000004000404C08L,0x0000000000400000L,0x2000040000000000L}); 7104 public static final BitSet FOLLOW_I_PACKED_SWITCH_ELEMENTS_in_packed_switch_elements837 = new BitSet(new long[]{0x0000000000000004L}); 7105 public static final BitSet FOLLOW_label_ref_in_packed_switch_elements846 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x4000000000000000L}); 7106 public static final BitSet FOLLOW_I_SPARSE_SWITCH_ELEMENTS_in_sparse_switch_elements881 = new BitSet(new long[]{0x0000000000000004L}); 7107 public static final BitSet FOLLOW_fixed_32bit_literal_in_sparse_switch_elements891 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7108 public static final BitSet FOLLOW_label_ref_in_sparse_switch_elements893 = new BitSet(new long[]{0x0000004000004C08L,0x0000000000400000L,0x2000040000000000L}); 7109 public static final BitSet FOLLOW_I_METHOD_in_method945 = new BitSet(new long[]{0x0000000000000004L}); 7110 public static final BitSet FOLLOW_method_name_and_prototype_in_method953 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L}); 7111 public static final BitSet FOLLOW_access_list_in_method961 = new BitSet(new long[]{0x0000000000000000L,0x1021000000000000L}); 7112 public static final BitSet FOLLOW_registers_directive_in_method988 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L}); 7113 public static final BitSet FOLLOW_ordered_method_items_in_method1045 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L}); 7114 public static final BitSet FOLLOW_catches_in_method1053 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); 7115 public static final BitSet FOLLOW_parameters_in_method1061 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L}); 7116 public static final BitSet FOLLOW_annotations_in_method1070 = new BitSet(new long[]{0x0000000000000008L}); 7117 public static final BitSet FOLLOW_I_METHOD_PROTOTYPE_in_method_prototype1094 = new BitSet(new long[]{0x0000000000000004L}); 7118 public static final BitSet FOLLOW_I_METHOD_RETURN_TYPE_in_method_prototype1097 = new BitSet(new long[]{0x0000000000000004L}); 7119 public static final BitSet FOLLOW_type_descriptor_in_method_prototype1099 = new BitSet(new long[]{0x0000000000000008L}); 7120 public static final BitSet FOLLOW_method_type_list_in_method_prototype1102 = new BitSet(new long[]{0x0000000000000008L}); 7121 public static final BitSet FOLLOW_SIMPLE_NAME_in_method_name_and_prototype1120 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L}); 7122 public static final BitSet FOLLOW_method_prototype_in_method_name_and_prototype1122 = new BitSet(new long[]{0x0000000000000002L}); 7123 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_method_type_list1156 = new BitSet(new long[]{0x0000000000008102L,0x0000000000000000L,0x0100000000000000L}); 7124 public static final BitSet FOLLOW_reference_type_descriptor_in_method_reference1185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7125 public static final BitSet FOLLOW_SIMPLE_NAME_in_method_reference1188 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L}); 7126 public static final BitSet FOLLOW_method_prototype_in_method_reference1190 = new BitSet(new long[]{0x0000000000000002L}); 7127 public static final BitSet FOLLOW_reference_type_descriptor_in_field_reference1207 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7128 public static final BitSet FOLLOW_SIMPLE_NAME_in_field_reference1210 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0100000000000000L}); 7129 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field_reference1212 = new BitSet(new long[]{0x0000000000000002L}); 7130 public static final BitSet FOLLOW_I_REGISTERS_in_registers_directive1238 = new BitSet(new long[]{0x0000000000000004L}); 7131 public static final BitSet FOLLOW_I_LOCALS_in_registers_directive1250 = new BitSet(new long[]{0x0000000000000004L}); 7132 public static final BitSet FOLLOW_short_integral_literal_in_registers_directive1268 = new BitSet(new long[]{0x0000000000000008L}); 7133 public static final BitSet FOLLOW_I_LABEL_in_label_def1288 = new BitSet(new long[]{0x0000000000000004L}); 7134 public static final BitSet FOLLOW_SIMPLE_NAME_in_label_def1290 = new BitSet(new long[]{0x0000000000000008L}); 7135 public static final BitSet FOLLOW_I_CATCHES_in_catches1316 = new BitSet(new long[]{0x0000000000000004L}); 7136 public static final BitSet FOLLOW_catch_directive_in_catches1318 = new BitSet(new long[]{0x0000000000000008L,0x00000000C0000000L}); 7137 public static final BitSet FOLLOW_catchall_directive_in_catches1321 = new BitSet(new long[]{0x0000000000000008L,0x0000000080000000L}); 7138 public static final BitSet FOLLOW_I_CATCH_in_catch_directive1334 = new BitSet(new long[]{0x0000000000000004L}); 7139 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_catch_directive1336 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7140 public static final BitSet FOLLOW_label_ref_in_catch_directive1340 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7141 public static final BitSet FOLLOW_label_ref_in_catch_directive1344 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7142 public static final BitSet FOLLOW_label_ref_in_catch_directive1348 = new BitSet(new long[]{0x0000000000000008L}); 7143 public static final BitSet FOLLOW_I_CATCHALL_in_catchall_directive1364 = new BitSet(new long[]{0x0000000000000004L}); 7144 public static final BitSet FOLLOW_label_ref_in_catchall_directive1368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7145 public static final BitSet FOLLOW_label_ref_in_catchall_directive1372 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7146 public static final BitSet FOLLOW_label_ref_in_catchall_directive1376 = new BitSet(new long[]{0x0000000000000008L}); 7147 public static final BitSet FOLLOW_I_PARAMETERS_in_parameters1393 = new BitSet(new long[]{0x0000000000000004L}); 7148 public static final BitSet FOLLOW_parameter_in_parameters1396 = new BitSet(new long[]{0x0000000000000008L,0x0100000000000000L}); 7149 public static final BitSet FOLLOW_I_PARAMETER_in_parameter1412 = new BitSet(new long[]{0x0000000000000004L}); 7150 public static final BitSet FOLLOW_REGISTER_in_parameter1414 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L,0x0000000000000000L,0x0000000000000002L}); 7151 public static final BitSet FOLLOW_string_literal_in_parameter1416 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L}); 7152 public static final BitSet FOLLOW_annotations_in_parameter1419 = new BitSet(new long[]{0x0000000000000008L}); 7153 public static final BitSet FOLLOW_line_in_debug_directive1436 = new BitSet(new long[]{0x0000000000000002L}); 7154 public static final BitSet FOLLOW_local_in_debug_directive1442 = new BitSet(new long[]{0x0000000000000002L}); 7155 public static final BitSet FOLLOW_end_local_in_debug_directive1448 = new BitSet(new long[]{0x0000000000000002L}); 7156 public static final BitSet FOLLOW_restart_local_in_debug_directive1454 = new BitSet(new long[]{0x0000000000000002L}); 7157 public static final BitSet FOLLOW_prologue_in_debug_directive1460 = new BitSet(new long[]{0x0000000000000002L}); 7158 public static final BitSet FOLLOW_epilogue_in_debug_directive1466 = new BitSet(new long[]{0x0000000000000002L}); 7159 public static final BitSet FOLLOW_source_in_debug_directive1472 = new BitSet(new long[]{0x0000000000000002L}); 7160 public static final BitSet FOLLOW_I_LINE_in_line1483 = new BitSet(new long[]{0x0000000000000004L}); 7161 public static final BitSet FOLLOW_integral_literal_in_line1485 = new BitSet(new long[]{0x0000000000000008L}); 7162 public static final BitSet FOLLOW_I_LOCAL_in_local1503 = new BitSet(new long[]{0x0000000000000004L}); 7163 public static final BitSet FOLLOW_REGISTER_in_local1505 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000400000000000L,0x0000000000000002L}); 7164 public static final BitSet FOLLOW_NULL_LITERAL_in_local1509 = new BitSet(new long[]{0x0000000000008108L,0x0000000000000000L,0x0100000000000000L,0x0000000000000002L}); 7165 public static final BitSet FOLLOW_string_literal_in_local1515 = new BitSet(new long[]{0x0000000000008108L,0x0000000000000000L,0x0100000000000000L,0x0000000000000002L}); 7166 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_local1518 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L}); 7167 public static final BitSet FOLLOW_string_literal_in_local1523 = new BitSet(new long[]{0x0000000000000008L}); 7168 public static final BitSet FOLLOW_I_END_LOCAL_in_end_local1544 = new BitSet(new long[]{0x0000000000000004L}); 7169 public static final BitSet FOLLOW_REGISTER_in_end_local1546 = new BitSet(new long[]{0x0000000000000008L}); 7170 public static final BitSet FOLLOW_I_RESTART_LOCAL_in_restart_local1564 = new BitSet(new long[]{0x0000000000000004L}); 7171 public static final BitSet FOLLOW_REGISTER_in_restart_local1566 = new BitSet(new long[]{0x0000000000000008L}); 7172 public static final BitSet FOLLOW_I_PROLOGUE_in_prologue1583 = new BitSet(new long[]{0x0000000000000002L}); 7173 public static final BitSet FOLLOW_I_EPILOGUE_in_epilogue1599 = new BitSet(new long[]{0x0000000000000002L}); 7174 public static final BitSet FOLLOW_I_SOURCE_in_source1616 = new BitSet(new long[]{0x0000000000000004L}); 7175 public static final BitSet FOLLOW_string_literal_in_source1618 = new BitSet(new long[]{0x0000000000000008L}); 7176 public static final BitSet FOLLOW_I_ORDERED_METHOD_ITEMS_in_ordered_method_items1637 = new BitSet(new long[]{0x0000000000000004L}); 7177 public static final BitSet FOLLOW_label_def_in_ordered_method_items1640 = new BitSet(new long[]{0x0000000000000008L,0x8800E0C000000000L,0x0000000FFFFFFFFDL}); 7178 public static final BitSet FOLLOW_instruction_in_ordered_method_items1644 = new BitSet(new long[]{0x0000000000000008L,0x8800E0C000000000L,0x0000000FFFFFFFFDL}); 7179 public static final BitSet FOLLOW_debug_directive_in_ordered_method_items1648 = new BitSet(new long[]{0x0000000000000008L,0x8800E0C000000000L,0x0000000FFFFFFFFDL}); 7180 public static final BitSet FOLLOW_SIMPLE_NAME_in_label_ref1664 = new BitSet(new long[]{0x0000000000000002L}); 7181 public static final BitSet FOLLOW_I_REGISTER_LIST_in_register_list1689 = new BitSet(new long[]{0x0000000000000004L}); 7182 public static final BitSet FOLLOW_REGISTER_in_register_list1698 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0400000000000000L}); 7183 public static final BitSet FOLLOW_I_REGISTER_RANGE_in_register_range1723 = new BitSet(new long[]{0x0000000000000004L}); 7184 public static final BitSet FOLLOW_REGISTER_in_register_range1728 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0400000000000000L}); 7185 public static final BitSet FOLLOW_REGISTER_in_register_range1732 = new BitSet(new long[]{0x0000000000000008L}); 7186 public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference1755 = new BitSet(new long[]{0x0000000000000002L}); 7187 public static final BitSet FOLLOW_field_reference_in_verification_error_reference1765 = new BitSet(new long[]{0x0000000000000002L}); 7188 public static final BitSet FOLLOW_method_reference_in_verification_error_reference1775 = new BitSet(new long[]{0x0000000000000002L}); 7189 public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_verification_error_type1792 = new BitSet(new long[]{0x0000000000000002L}); 7190 public static final BitSet FOLLOW_insn_format10t_in_instruction1806 = new BitSet(new long[]{0x0000000000000002L}); 7191 public static final BitSet FOLLOW_insn_format10x_in_instruction1812 = new BitSet(new long[]{0x0000000000000002L}); 7192 public static final BitSet FOLLOW_insn_format11n_in_instruction1818 = new BitSet(new long[]{0x0000000000000002L}); 7193 public static final BitSet FOLLOW_insn_format11x_in_instruction1824 = new BitSet(new long[]{0x0000000000000002L}); 7194 public static final BitSet FOLLOW_insn_format12x_in_instruction1830 = new BitSet(new long[]{0x0000000000000002L}); 7195 public static final BitSet FOLLOW_insn_format20bc_in_instruction1836 = new BitSet(new long[]{0x0000000000000002L}); 7196 public static final BitSet FOLLOW_insn_format20t_in_instruction1842 = new BitSet(new long[]{0x0000000000000002L}); 7197 public static final BitSet FOLLOW_insn_format21c_field_in_instruction1848 = new BitSet(new long[]{0x0000000000000002L}); 7198 public static final BitSet FOLLOW_insn_format21c_string_in_instruction1854 = new BitSet(new long[]{0x0000000000000002L}); 7199 public static final BitSet FOLLOW_insn_format21c_type_in_instruction1860 = new BitSet(new long[]{0x0000000000000002L}); 7200 public static final BitSet FOLLOW_insn_format21ih_in_instruction1866 = new BitSet(new long[]{0x0000000000000002L}); 7201 public static final BitSet FOLLOW_insn_format21lh_in_instruction1872 = new BitSet(new long[]{0x0000000000000002L}); 7202 public static final BitSet FOLLOW_insn_format21s_in_instruction1878 = new BitSet(new long[]{0x0000000000000002L}); 7203 public static final BitSet FOLLOW_insn_format21t_in_instruction1884 = new BitSet(new long[]{0x0000000000000002L}); 7204 public static final BitSet FOLLOW_insn_format22b_in_instruction1890 = new BitSet(new long[]{0x0000000000000002L}); 7205 public static final BitSet FOLLOW_insn_format22c_field_in_instruction1896 = new BitSet(new long[]{0x0000000000000002L}); 7206 public static final BitSet FOLLOW_insn_format22c_type_in_instruction1902 = new BitSet(new long[]{0x0000000000000002L}); 7207 public static final BitSet FOLLOW_insn_format22s_in_instruction1908 = new BitSet(new long[]{0x0000000000000002L}); 7208 public static final BitSet FOLLOW_insn_format22t_in_instruction1914 = new BitSet(new long[]{0x0000000000000002L}); 7209 public static final BitSet FOLLOW_insn_format22x_in_instruction1920 = new BitSet(new long[]{0x0000000000000002L}); 7210 public static final BitSet FOLLOW_insn_format23x_in_instruction1926 = new BitSet(new long[]{0x0000000000000002L}); 7211 public static final BitSet FOLLOW_insn_format30t_in_instruction1932 = new BitSet(new long[]{0x0000000000000002L}); 7212 public static final BitSet FOLLOW_insn_format31c_in_instruction1938 = new BitSet(new long[]{0x0000000000000002L}); 7213 public static final BitSet FOLLOW_insn_format31i_in_instruction1944 = new BitSet(new long[]{0x0000000000000002L}); 7214 public static final BitSet FOLLOW_insn_format31t_in_instruction1950 = new BitSet(new long[]{0x0000000000000002L}); 7215 public static final BitSet FOLLOW_insn_format32x_in_instruction1956 = new BitSet(new long[]{0x0000000000000002L}); 7216 public static final BitSet FOLLOW_insn_format35c_method_in_instruction1962 = new BitSet(new long[]{0x0000000000000002L}); 7217 public static final BitSet FOLLOW_insn_format35c_type_in_instruction1968 = new BitSet(new long[]{0x0000000000000002L}); 7218 public static final BitSet FOLLOW_insn_format3rc_method_in_instruction1974 = new BitSet(new long[]{0x0000000000000002L}); 7219 public static final BitSet FOLLOW_insn_format3rc_type_in_instruction1980 = new BitSet(new long[]{0x0000000000000002L}); 7220 public static final BitSet FOLLOW_insn_format51l_type_in_instruction1986 = new BitSet(new long[]{0x0000000000000002L}); 7221 public static final BitSet FOLLOW_insn_array_data_directive_in_instruction1992 = new BitSet(new long[]{0x0000000000000002L}); 7222 public static final BitSet FOLLOW_insn_packed_switch_directive_in_instruction1998 = new BitSet(new long[]{0x0000000000000002L}); 7223 public static final BitSet FOLLOW_insn_sparse_switch_directive_in_instruction2004 = new BitSet(new long[]{0x0000000000000002L}); 7224 public static final BitSet FOLLOW_I_STATEMENT_FORMAT10t_in_insn_format10t2028 = new BitSet(new long[]{0x0000000000000004L}); 7225 public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t2030 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7226 public static final BitSet FOLLOW_label_ref_in_insn_format10t2032 = new BitSet(new long[]{0x0000000000000008L}); 7227 public static final BitSet FOLLOW_I_STATEMENT_FORMAT10x_in_insn_format10x2055 = new BitSet(new long[]{0x0000000000000004L}); 7228 public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x2057 = new BitSet(new long[]{0x0000000000000008L}); 7229 public static final BitSet FOLLOW_I_STATEMENT_FORMAT11n_in_insn_format11n2080 = new BitSet(new long[]{0x0000000000000004L}); 7230 public static final BitSet FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n2082 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7231 public static final BitSet FOLLOW_REGISTER_in_insn_format11n2084 = new BitSet(new long[]{0x0000000000004800L,0x0000000000400000L,0x2000040000000000L}); 7232 public static final BitSet FOLLOW_short_integral_literal_in_insn_format11n2086 = new BitSet(new long[]{0x0000000000000008L}); 7233 public static final BitSet FOLLOW_I_STATEMENT_FORMAT11x_in_insn_format11x2109 = new BitSet(new long[]{0x0000000000000004L}); 7234 public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x2111 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7235 public static final BitSet FOLLOW_REGISTER_in_insn_format11x2113 = new BitSet(new long[]{0x0000000000000008L}); 7236 public static final BitSet FOLLOW_I_STATEMENT_FORMAT12x_in_insn_format12x2136 = new BitSet(new long[]{0x0000000000000004L}); 7237 public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_in_insn_format12x2138 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7238 public static final BitSet FOLLOW_REGISTER_in_insn_format12x2142 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7239 public static final BitSet FOLLOW_REGISTER_in_insn_format12x2146 = new BitSet(new long[]{0x0000000000000008L}); 7240 public static final BitSet FOLLOW_I_STATEMENT_FORMAT20bc_in_insn_format20bc2169 = new BitSet(new long[]{0x0000000000000004L}); 7241 public static final BitSet FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc2171 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000010L}); 7242 public static final BitSet FOLLOW_verification_error_type_in_insn_format20bc2173 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x4000000000000000L}); 7243 public static final BitSet FOLLOW_verification_error_reference_in_insn_format20bc2175 = new BitSet(new long[]{0x0000000000000008L}); 7244 public static final BitSet FOLLOW_I_STATEMENT_FORMAT20t_in_insn_format20t2198 = new BitSet(new long[]{0x0000000000000004L}); 7245 public static final BitSet FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t2200 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7246 public static final BitSet FOLLOW_label_ref_in_insn_format20t2202 = new BitSet(new long[]{0x0000000000000008L}); 7247 public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_FIELD_in_insn_format21c_field2225 = new BitSet(new long[]{0x0000000000000004L}); 7248 public static final BitSet FOLLOW_set_in_insn_format21c_field2229 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7249 public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field2237 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x4000000000000000L}); 7250 public static final BitSet FOLLOW_field_reference_in_insn_format21c_field2239 = new BitSet(new long[]{0x0000000000000008L}); 7251 public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_STRING_in_insn_format21c_string2262 = new BitSet(new long[]{0x0000000000000004L}); 7252 public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string2264 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7253 public static final BitSet FOLLOW_REGISTER_in_insn_format21c_string2266 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L}); 7254 public static final BitSet FOLLOW_string_literal_in_insn_format21c_string2268 = new BitSet(new long[]{0x0000000000000008L}); 7255 public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_TYPE_in_insn_format21c_type2291 = new BitSet(new long[]{0x0000000000000004L}); 7256 public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type2293 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7257 public static final BitSet FOLLOW_REGISTER_in_insn_format21c_type2295 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0100000000000000L}); 7258 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type2297 = new BitSet(new long[]{0x0000000000000008L}); 7259 public static final BitSet FOLLOW_I_STATEMENT_FORMAT21ih_in_insn_format21ih2320 = new BitSet(new long[]{0x0000000000000004L}); 7260 public static final BitSet FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih2322 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7261 public static final BitSet FOLLOW_REGISTER_in_insn_format21ih2324 = new BitSet(new long[]{0x0000004000004C00L,0x0000000000400000L,0x2000040000000000L}); 7262 public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21ih2326 = new BitSet(new long[]{0x0000000000000008L}); 7263 public static final BitSet FOLLOW_I_STATEMENT_FORMAT21lh_in_insn_format21lh2349 = new BitSet(new long[]{0x0000000000000004L}); 7264 public static final BitSet FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh2351 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7265 public static final BitSet FOLLOW_REGISTER_in_insn_format21lh2353 = new BitSet(new long[]{0x0000004000404C00L,0x0000000000400000L,0x2000040000000000L}); 7266 public static final BitSet FOLLOW_fixed_64bit_literal_in_insn_format21lh2355 = new BitSet(new long[]{0x0000000000000008L}); 7267 public static final BitSet FOLLOW_I_STATEMENT_FORMAT21s_in_insn_format21s2378 = new BitSet(new long[]{0x0000000000000004L}); 7268 public static final BitSet FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s2380 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7269 public static final BitSet FOLLOW_REGISTER_in_insn_format21s2382 = new BitSet(new long[]{0x0000000000004800L,0x0000000000400000L,0x2000040000000000L}); 7270 public static final BitSet FOLLOW_short_integral_literal_in_insn_format21s2384 = new BitSet(new long[]{0x0000000000000008L}); 7271 public static final BitSet FOLLOW_I_STATEMENT_FORMAT21t_in_insn_format21t2407 = new BitSet(new long[]{0x0000000000000004L}); 7272 public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t2409 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7273 public static final BitSet FOLLOW_REGISTER_in_insn_format21t2411 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7274 public static final BitSet FOLLOW_label_ref_in_insn_format21t2413 = new BitSet(new long[]{0x0000000000000008L}); 7275 public static final BitSet FOLLOW_I_STATEMENT_FORMAT22b_in_insn_format22b2436 = new BitSet(new long[]{0x0000000000000004L}); 7276 public static final BitSet FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b2438 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7277 public static final BitSet FOLLOW_REGISTER_in_insn_format22b2442 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7278 public static final BitSet FOLLOW_REGISTER_in_insn_format22b2446 = new BitSet(new long[]{0x0000000000004800L,0x0000000000400000L,0x2000040000000000L}); 7279 public static final BitSet FOLLOW_short_integral_literal_in_insn_format22b2448 = new BitSet(new long[]{0x0000000000000008L}); 7280 public static final BitSet FOLLOW_I_STATEMENT_FORMAT22c_FIELD_in_insn_format22c_field2471 = new BitSet(new long[]{0x0000000000000004L}); 7281 public static final BitSet FOLLOW_set_in_insn_format22c_field2475 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7282 public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field2485 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7283 public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field2489 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x4000000000000000L}); 7284 public static final BitSet FOLLOW_field_reference_in_insn_format22c_field2491 = new BitSet(new long[]{0x0000000000000008L}); 7285 public static final BitSet FOLLOW_I_STATEMENT_FORMAT22c_TYPE_in_insn_format22c_type2514 = new BitSet(new long[]{0x0000000000000004L}); 7286 public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type2516 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7287 public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type2520 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7288 public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type2524 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0100000000000000L}); 7289 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type2526 = new BitSet(new long[]{0x0000000000000008L}); 7290 public static final BitSet FOLLOW_I_STATEMENT_FORMAT22s_in_insn_format22s2549 = new BitSet(new long[]{0x0000000000000004L}); 7291 public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_in_insn_format22s2551 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7292 public static final BitSet FOLLOW_REGISTER_in_insn_format22s2555 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7293 public static final BitSet FOLLOW_REGISTER_in_insn_format22s2559 = new BitSet(new long[]{0x0000000000004800L,0x0000000000400000L,0x2000040000000000L}); 7294 public static final BitSet FOLLOW_short_integral_literal_in_insn_format22s2561 = new BitSet(new long[]{0x0000000000000008L}); 7295 public static final BitSet FOLLOW_I_STATEMENT_FORMAT22t_in_insn_format22t2584 = new BitSet(new long[]{0x0000000000000004L}); 7296 public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t2586 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7297 public static final BitSet FOLLOW_REGISTER_in_insn_format22t2590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7298 public static final BitSet FOLLOW_REGISTER_in_insn_format22t2594 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7299 public static final BitSet FOLLOW_label_ref_in_insn_format22t2596 = new BitSet(new long[]{0x0000000000000008L}); 7300 public static final BitSet FOLLOW_I_STATEMENT_FORMAT22x_in_insn_format22x2619 = new BitSet(new long[]{0x0000000000000004L}); 7301 public static final BitSet FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x2621 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7302 public static final BitSet FOLLOW_REGISTER_in_insn_format22x2625 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7303 public static final BitSet FOLLOW_REGISTER_in_insn_format22x2629 = new BitSet(new long[]{0x0000000000000008L}); 7304 public static final BitSet FOLLOW_I_STATEMENT_FORMAT23x_in_insn_format23x2652 = new BitSet(new long[]{0x0000000000000004L}); 7305 public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x2654 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7306 public static final BitSet FOLLOW_REGISTER_in_insn_format23x2658 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7307 public static final BitSet FOLLOW_REGISTER_in_insn_format23x2662 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7308 public static final BitSet FOLLOW_REGISTER_in_insn_format23x2666 = new BitSet(new long[]{0x0000000000000008L}); 7309 public static final BitSet FOLLOW_I_STATEMENT_FORMAT30t_in_insn_format30t2689 = new BitSet(new long[]{0x0000000000000004L}); 7310 public static final BitSet FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t2691 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7311 public static final BitSet FOLLOW_label_ref_in_insn_format30t2693 = new BitSet(new long[]{0x0000000000000008L}); 7312 public static final BitSet FOLLOW_I_STATEMENT_FORMAT31c_in_insn_format31c2716 = new BitSet(new long[]{0x0000000000000004L}); 7313 public static final BitSet FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c2718 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7314 public static final BitSet FOLLOW_REGISTER_in_insn_format31c2720 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000002L}); 7315 public static final BitSet FOLLOW_string_literal_in_insn_format31c2722 = new BitSet(new long[]{0x0000000000000008L}); 7316 public static final BitSet FOLLOW_I_STATEMENT_FORMAT31i_in_insn_format31i2745 = new BitSet(new long[]{0x0000000000000004L}); 7317 public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_in_insn_format31i2747 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7318 public static final BitSet FOLLOW_REGISTER_in_insn_format31i2749 = new BitSet(new long[]{0x0000004000004C00L,0x0000000000400000L,0x2000040000000000L}); 7319 public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format31i2751 = new BitSet(new long[]{0x0000000000000008L}); 7320 public static final BitSet FOLLOW_I_STATEMENT_FORMAT31t_in_insn_format31t2774 = new BitSet(new long[]{0x0000000000000004L}); 7321 public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t2776 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7322 public static final BitSet FOLLOW_REGISTER_in_insn_format31t2778 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x4000000000000000L}); 7323 public static final BitSet FOLLOW_label_ref_in_insn_format31t2780 = new BitSet(new long[]{0x0000000000000008L}); 7324 public static final BitSet FOLLOW_I_STATEMENT_FORMAT32x_in_insn_format32x2803 = new BitSet(new long[]{0x0000000000000004L}); 7325 public static final BitSet FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x2805 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7326 public static final BitSet FOLLOW_REGISTER_in_insn_format32x2809 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7327 public static final BitSet FOLLOW_REGISTER_in_insn_format32x2813 = new BitSet(new long[]{0x0000000000000008L}); 7328 public static final BitSet FOLLOW_I_STATEMENT_FORMAT35c_METHOD_in_insn_format35c_method2836 = new BitSet(new long[]{0x0000000000000004L}); 7329 public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method2838 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L}); 7330 public static final BitSet FOLLOW_register_list_in_insn_format35c_method2840 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x4000000000000000L}); 7331 public static final BitSet FOLLOW_method_reference_in_insn_format35c_method2842 = new BitSet(new long[]{0x0000000000000008L}); 7332 public static final BitSet FOLLOW_I_STATEMENT_FORMAT35c_TYPE_in_insn_format35c_type2865 = new BitSet(new long[]{0x0000000000000004L}); 7333 public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type2867 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L}); 7334 public static final BitSet FOLLOW_register_list_in_insn_format35c_type2869 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0100000000000000L}); 7335 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type2871 = new BitSet(new long[]{0x0000000000000008L}); 7336 public static final BitSet FOLLOW_I_STATEMENT_FORMAT3rc_METHOD_in_insn_format3rc_method2894 = new BitSet(new long[]{0x0000000000000004L}); 7337 public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method2896 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L}); 7338 public static final BitSet FOLLOW_register_range_in_insn_format3rc_method2898 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x4000000000000000L}); 7339 public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method2900 = new BitSet(new long[]{0x0000000000000008L}); 7340 public static final BitSet FOLLOW_I_STATEMENT_FORMAT3rc_TYPE_in_insn_format3rc_type2923 = new BitSet(new long[]{0x0000000000000004L}); 7341 public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type2925 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L}); 7342 public static final BitSet FOLLOW_register_range_in_insn_format3rc_type2927 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0100000000000000L}); 7343 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type2929 = new BitSet(new long[]{0x0000000000000008L}); 7344 public static final BitSet FOLLOW_I_STATEMENT_FORMAT51l_in_insn_format51l_type2952 = new BitSet(new long[]{0x0000000000000004L}); 7345 public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l_type2954 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0400000000000000L}); 7346 public static final BitSet FOLLOW_REGISTER_in_insn_format51l_type2956 = new BitSet(new long[]{0x0000004000404C00L,0x0000000000400000L,0x2000040000000000L}); 7347 public static final BitSet FOLLOW_fixed_64bit_literal_in_insn_format51l_type2958 = new BitSet(new long[]{0x0000000000000008L}); 7348 public static final BitSet FOLLOW_I_STATEMENT_ARRAY_DATA_in_insn_array_data_directive2981 = new BitSet(new long[]{0x0000000000000004L}); 7349 public static final BitSet FOLLOW_I_ARRAY_ELEMENT_SIZE_in_insn_array_data_directive2984 = new BitSet(new long[]{0x0000000000000004L}); 7350 public static final BitSet FOLLOW_short_integral_literal_in_insn_array_data_directive2986 = new BitSet(new long[]{0x0000000000000008L}); 7351 public static final BitSet FOLLOW_array_elements_in_insn_array_data_directive2989 = new BitSet(new long[]{0x0000000000000008L}); 7352 public static final BitSet FOLLOW_I_STATEMENT_PACKED_SWITCH_in_insn_packed_switch_directive3011 = new BitSet(new long[]{0x0000000000000004L}); 7353 public static final BitSet FOLLOW_I_PACKED_SWITCH_START_KEY_in_insn_packed_switch_directive3014 = new BitSet(new long[]{0x0000000000000004L}); 7354 public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive3016 = new BitSet(new long[]{0x0000000000000008L}); 7355 public static final BitSet FOLLOW_packed_switch_elements_in_insn_packed_switch_directive3019 = new BitSet(new long[]{0x0000000000000008L}); 7356 public static final BitSet FOLLOW_I_STATEMENT_SPARSE_SWITCH_in_insn_sparse_switch_directive3043 = new BitSet(new long[]{0x0000000000000004L}); 7357 public static final BitSet FOLLOW_sparse_switch_elements_in_insn_sparse_switch_directive3045 = new BitSet(new long[]{0x0000000000000008L}); 7358 public static final BitSet FOLLOW_set_in_nonvoid_type_descriptor3066 = new BitSet(new long[]{0x0000000000000002L}); 7359 public static final BitSet FOLLOW_set_in_reference_type_descriptor3098 = new BitSet(new long[]{0x0000000000000002L}); 7360 public static final BitSet FOLLOW_VOID_TYPE_in_type_descriptor3124 = new BitSet(new long[]{0x0000000000000002L}); 7361 public static final BitSet FOLLOW_nonvoid_type_descriptor_in_type_descriptor3132 = new BitSet(new long[]{0x0000000000000002L}); 7362 public static final BitSet FOLLOW_long_literal_in_short_integral_literal3150 = new BitSet(new long[]{0x0000000000000002L}); 7363 public static final BitSet FOLLOW_integer_literal_in_short_integral_literal3162 = new BitSet(new long[]{0x0000000000000002L}); 7364 public static final BitSet FOLLOW_short_literal_in_short_integral_literal3174 = new BitSet(new long[]{0x0000000000000002L}); 7365 public static final BitSet FOLLOW_char_literal_in_short_integral_literal3182 = new BitSet(new long[]{0x0000000000000002L}); 7366 public static final BitSet FOLLOW_byte_literal_in_short_integral_literal3190 = new BitSet(new long[]{0x0000000000000002L}); 7367 public static final BitSet FOLLOW_long_literal_in_integral_literal3205 = new BitSet(new long[]{0x0000000000000002L}); 7368 public static final BitSet FOLLOW_integer_literal_in_integral_literal3217 = new BitSet(new long[]{0x0000000000000002L}); 7369 public static final BitSet FOLLOW_short_literal_in_integral_literal3225 = new BitSet(new long[]{0x0000000000000002L}); 7370 public static final BitSet FOLLOW_byte_literal_in_integral_literal3233 = new BitSet(new long[]{0x0000000000000002L}); 7371 public static final BitSet FOLLOW_INTEGER_LITERAL_in_integer_literal3249 = new BitSet(new long[]{0x0000000000000002L}); 7372 public static final BitSet FOLLOW_LONG_LITERAL_in_long_literal3264 = new BitSet(new long[]{0x0000000000000002L}); 7373 public static final BitSet FOLLOW_SHORT_LITERAL_in_short_literal3279 = new BitSet(new long[]{0x0000000000000002L}); 7374 public static final BitSet FOLLOW_BYTE_LITERAL_in_byte_literal3294 = new BitSet(new long[]{0x0000000000000002L}); 7375 public static final BitSet FOLLOW_FLOAT_LITERAL_in_float_literal3309 = new BitSet(new long[]{0x0000000000000002L}); 7376 public static final BitSet FOLLOW_DOUBLE_LITERAL_in_double_literal3324 = new BitSet(new long[]{0x0000000000000002L}); 7377 public static final BitSet FOLLOW_CHAR_LITERAL_in_char_literal3339 = new BitSet(new long[]{0x0000000000000002L}); 7378 public static final BitSet FOLLOW_STRING_LITERAL_in_string_literal3354 = new BitSet(new long[]{0x0000000000000002L}); 7379 public static final BitSet FOLLOW_BOOL_LITERAL_in_bool_literal3373 = new BitSet(new long[]{0x0000000000000002L}); 7380 public static final BitSet FOLLOW_I_ENCODED_ARRAY_in_array_literal3395 = new BitSet(new long[]{0x0000000000000004L}); 7381 public static final BitSet FOLLOW_literal_in_array_literal3398 = new BitSet(new long[]{0x000000400040CD08L,0x0000003C00400000L,0x2100441000000000L,0x0000000000000022L}); 7382 public static final BitSet FOLLOW_I_ANNOTATIONS_in_annotations3423 = new BitSet(new long[]{0x0000000000000004L}); 7383 public static final BitSet FOLLOW_annotation_in_annotations3426 = new BitSet(new long[]{0x0000000000000008L,0x0000000002000000L}); 7384 public static final BitSet FOLLOW_I_ANNOTATION_in_annotation3455 = new BitSet(new long[]{0x0000000000000004L}); 7385 public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_annotation3457 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L}); 7386 public static final BitSet FOLLOW_subannotation_in_annotation3459 = new BitSet(new long[]{0x0000000000000008L}); 7387 public static final BitSet FOLLOW_I_ANNOTATION_ELEMENT_in_annotation_element3480 = new BitSet(new long[]{0x0000000000000004L}); 7388 public static final BitSet FOLLOW_SIMPLE_NAME_in_annotation_element3482 = new BitSet(new long[]{0x000000400040CD00L,0x0000003C00400000L,0x2100441000000000L,0x0000000000000022L}); 7389 public static final BitSet FOLLOW_literal_in_annotation_element3484 = new BitSet(new long[]{0x0000000000000008L}); 7390 public static final BitSet FOLLOW_I_SUBANNOTATION_in_subannotation3511 = new BitSet(new long[]{0x0000000000000004L}); 7391 public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_subannotation3521 = new BitSet(new long[]{0x0000000000000008L,0x0000000008000000L}); 7392 public static final BitSet FOLLOW_annotation_element_in_subannotation3532 = new BitSet(new long[]{0x0000000000000008L,0x0000000008000000L}); 7393 public static final BitSet FOLLOW_I_ENCODED_FIELD_in_field_literal3571 = new BitSet(new long[]{0x0000000000000004L}); 7394 public static final BitSet FOLLOW_field_reference_in_field_literal3573 = new BitSet(new long[]{0x0000000000000008L}); 7395 public static final BitSet FOLLOW_I_ENCODED_METHOD_in_method_literal3594 = new BitSet(new long[]{0x0000000000000004L}); 7396 public static final BitSet FOLLOW_method_reference_in_method_literal3596 = new BitSet(new long[]{0x0000000000000008L}); 7397 public static final BitSet FOLLOW_I_ENCODED_ENUM_in_enum_literal3617 = new BitSet(new long[]{0x0000000000000004L}); 7398 public static final BitSet FOLLOW_field_reference_in_enum_literal3619 = new BitSet(new long[]{0x0000000000000008L}); 7399 } 7400