1 // $ANTLR 3.5.2 smaliParser.g 2017-04-20 15:20:45 2 3 package org.jf.smali; 4 5 import org.jf.dexlib2.Format; 6 import org.jf.dexlib2.Opcode; 7 import org.jf.dexlib2.Opcodes; 8 9 10 import org.antlr.runtime.*; 11 import java.util.Stack; 12 import java.util.List; 13 import java.util.ArrayList; 14 15 import org.antlr.runtime.tree.*; 16 17 18 @SuppressWarnings("all") 19 public class smaliParser extends Parser { 20 public static final String[] tokenNames = new String[] { 21 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACCESS_SPEC", "ANNOTATION_DIRECTIVE", 22 "ANNOTATION_VISIBILITY", "ARRAY_DATA_DIRECTIVE", "ARRAY_TYPE_PREFIX", 23 "ARROW", "BOOL_LITERAL", "BYTE_LITERAL", "CATCHALL_DIRECTIVE", "CATCH_DIRECTIVE", 24 "CHAR_LITERAL", "CLASS_DESCRIPTOR", "CLASS_DIRECTIVE", "CLOSE_BRACE", 25 "CLOSE_PAREN", "COLON", "COMMA", "DOTDOT", "DOUBLE_LITERAL", "DOUBLE_LITERAL_OR_ID", 26 "END_ANNOTATION_DIRECTIVE", "END_ARRAY_DATA_DIRECTIVE", "END_FIELD_DIRECTIVE", 27 "END_LOCAL_DIRECTIVE", "END_METHOD_DIRECTIVE", "END_PACKED_SWITCH_DIRECTIVE", 28 "END_PARAMETER_DIRECTIVE", "END_SPARSE_SWITCH_DIRECTIVE", "END_SUBANNOTATION_DIRECTIVE", 29 "ENUM_DIRECTIVE", "EPILOGUE_DIRECTIVE", "EQUAL", "FIELD_DIRECTIVE", "FIELD_OFFSET", 30 "FLOAT_LITERAL", "FLOAT_LITERAL_OR_ID", "IMPLEMENTS_DIRECTIVE", "INLINE_INDEX", 31 "INSTRUCTION_FORMAT10t", "INSTRUCTION_FORMAT10x", "INSTRUCTION_FORMAT10x_ODEX", 32 "INSTRUCTION_FORMAT11n", "INSTRUCTION_FORMAT11x", "INSTRUCTION_FORMAT12x", 33 "INSTRUCTION_FORMAT12x_OR_ID", "INSTRUCTION_FORMAT20bc", "INSTRUCTION_FORMAT20t", 34 "INSTRUCTION_FORMAT21c_FIELD", "INSTRUCTION_FORMAT21c_FIELD_ODEX", "INSTRUCTION_FORMAT21c_STRING", 35 "INSTRUCTION_FORMAT21c_TYPE", "INSTRUCTION_FORMAT21ih", "INSTRUCTION_FORMAT21lh", 36 "INSTRUCTION_FORMAT21s", "INSTRUCTION_FORMAT21t", "INSTRUCTION_FORMAT22b", 37 "INSTRUCTION_FORMAT22c_FIELD", "INSTRUCTION_FORMAT22c_FIELD_ODEX", "INSTRUCTION_FORMAT22c_TYPE", 38 "INSTRUCTION_FORMAT22cs_FIELD", "INSTRUCTION_FORMAT22s", "INSTRUCTION_FORMAT22s_OR_ID", 39 "INSTRUCTION_FORMAT22t", "INSTRUCTION_FORMAT22x", "INSTRUCTION_FORMAT23x", 40 "INSTRUCTION_FORMAT30t", "INSTRUCTION_FORMAT31c", "INSTRUCTION_FORMAT31i", 41 "INSTRUCTION_FORMAT31i_OR_ID", "INSTRUCTION_FORMAT31t", "INSTRUCTION_FORMAT32x", 42 "INSTRUCTION_FORMAT35c_METHOD", "INSTRUCTION_FORMAT35c_METHOD_ODEX", "INSTRUCTION_FORMAT35c_TYPE", 43 "INSTRUCTION_FORMAT35mi_METHOD", "INSTRUCTION_FORMAT35ms_METHOD", "INSTRUCTION_FORMAT3rc_METHOD", 44 "INSTRUCTION_FORMAT3rc_METHOD_ODEX", "INSTRUCTION_FORMAT3rc_TYPE", "INSTRUCTION_FORMAT3rmi_METHOD", 45 "INSTRUCTION_FORMAT3rms_METHOD", "INSTRUCTION_FORMAT45cc_METHOD", "INSTRUCTION_FORMAT4rcc_METHOD", 46 "INSTRUCTION_FORMAT51l", "INTEGER_LITERAL", "INVALID_TOKEN", "I_ACCESS_LIST", 47 "I_ANNOTATION", "I_ANNOTATIONS", "I_ANNOTATION_ELEMENT", "I_ARRAY_ELEMENTS", 48 "I_ARRAY_ELEMENT_SIZE", "I_CATCH", "I_CATCHALL", "I_CATCHES", "I_CLASS_DEF", 49 "I_ENCODED_ARRAY", "I_ENCODED_ENUM", "I_ENCODED_FIELD", "I_ENCODED_METHOD", 50 "I_END_LOCAL", "I_EPILOGUE", "I_FIELD", "I_FIELDS", "I_FIELD_INITIAL_VALUE", 51 "I_FIELD_TYPE", "I_IMPLEMENTS", "I_LABEL", "I_LINE", "I_LOCAL", "I_LOCALS", 52 "I_METHOD", "I_METHODS", "I_METHOD_PROTOTYPE", "I_METHOD_RETURN_TYPE", 53 "I_ORDERED_METHOD_ITEMS", "I_PACKED_SWITCH_ELEMENTS", "I_PACKED_SWITCH_START_KEY", 54 "I_PARAMETER", "I_PARAMETERS", "I_PARAMETER_NOT_SPECIFIED", "I_PROLOGUE", 55 "I_REGISTERS", "I_REGISTER_LIST", "I_REGISTER_RANGE", "I_RESTART_LOCAL", 56 "I_SOURCE", "I_SPARSE_SWITCH_ELEMENTS", "I_STATEMENT_ARRAY_DATA", "I_STATEMENT_FORMAT10t", 57 "I_STATEMENT_FORMAT10x", "I_STATEMENT_FORMAT11n", "I_STATEMENT_FORMAT11x", 58 "I_STATEMENT_FORMAT12x", "I_STATEMENT_FORMAT20bc", "I_STATEMENT_FORMAT20t", 59 "I_STATEMENT_FORMAT21c_FIELD", "I_STATEMENT_FORMAT21c_STRING", "I_STATEMENT_FORMAT21c_TYPE", 60 "I_STATEMENT_FORMAT21ih", "I_STATEMENT_FORMAT21lh", "I_STATEMENT_FORMAT21s", 61 "I_STATEMENT_FORMAT21t", "I_STATEMENT_FORMAT22b", "I_STATEMENT_FORMAT22c_FIELD", 62 "I_STATEMENT_FORMAT22c_TYPE", "I_STATEMENT_FORMAT22s", "I_STATEMENT_FORMAT22t", 63 "I_STATEMENT_FORMAT22x", "I_STATEMENT_FORMAT23x", "I_STATEMENT_FORMAT30t", 64 "I_STATEMENT_FORMAT31c", "I_STATEMENT_FORMAT31i", "I_STATEMENT_FORMAT31t", 65 "I_STATEMENT_FORMAT32x", "I_STATEMENT_FORMAT35c_METHOD", "I_STATEMENT_FORMAT35c_TYPE", 66 "I_STATEMENT_FORMAT3rc_METHOD", "I_STATEMENT_FORMAT3rc_TYPE", "I_STATEMENT_FORMAT45cc_METHOD", 67 "I_STATEMENT_FORMAT4rcc_METHOD", "I_STATEMENT_FORMAT51l", "I_STATEMENT_PACKED_SWITCH", 68 "I_STATEMENT_SPARSE_SWITCH", "I_SUBANNOTATION", "I_SUPER", "LINE_COMMENT", 69 "LINE_DIRECTIVE", "LOCALS_DIRECTIVE", "LOCAL_DIRECTIVE", "LONG_LITERAL", 70 "MEMBER_NAME", "METHOD_DIRECTIVE", "NEGATIVE_INTEGER_LITERAL", "NULL_LITERAL", 71 "OPEN_BRACE", "OPEN_PAREN", "PACKED_SWITCH_DIRECTIVE", "PARAMETER_DIRECTIVE", 72 "PARAM_LIST_OR_ID_PRIMITIVE_TYPE", "POSITIVE_INTEGER_LITERAL", "PRIMITIVE_TYPE", 73 "PROLOGUE_DIRECTIVE", "REGISTER", "REGISTERS_DIRECTIVE", "RESTART_LOCAL_DIRECTIVE", 74 "SHORT_LITERAL", "SIMPLE_NAME", "SOURCE_DIRECTIVE", "SPARSE_SWITCH_DIRECTIVE", 75 "STRING_LITERAL", "SUBANNOTATION_DIRECTIVE", "SUPER_DIRECTIVE", "VERIFICATION_ERROR_TYPE", 76 "VOID_TYPE", "VTABLE_INDEX", "WHITE_SPACE" 77 }; 78 public static final int EOF=-1; 79 public static final int ACCESS_SPEC=4; 80 public static final int ANNOTATION_DIRECTIVE=5; 81 public static final int ANNOTATION_VISIBILITY=6; 82 public static final int ARRAY_DATA_DIRECTIVE=7; 83 public static final int ARRAY_TYPE_PREFIX=8; 84 public static final int ARROW=9; 85 public static final int BOOL_LITERAL=10; 86 public static final int BYTE_LITERAL=11; 87 public static final int CATCHALL_DIRECTIVE=12; 88 public static final int CATCH_DIRECTIVE=13; 89 public static final int CHAR_LITERAL=14; 90 public static final int CLASS_DESCRIPTOR=15; 91 public static final int CLASS_DIRECTIVE=16; 92 public static final int CLOSE_BRACE=17; 93 public static final int CLOSE_PAREN=18; 94 public static final int COLON=19; 95 public static final int COMMA=20; 96 public static final int DOTDOT=21; 97 public static final int DOUBLE_LITERAL=22; 98 public static final int DOUBLE_LITERAL_OR_ID=23; 99 public static final int END_ANNOTATION_DIRECTIVE=24; 100 public static final int END_ARRAY_DATA_DIRECTIVE=25; 101 public static final int END_FIELD_DIRECTIVE=26; 102 public static final int END_LOCAL_DIRECTIVE=27; 103 public static final int END_METHOD_DIRECTIVE=28; 104 public static final int END_PACKED_SWITCH_DIRECTIVE=29; 105 public static final int END_PARAMETER_DIRECTIVE=30; 106 public static final int END_SPARSE_SWITCH_DIRECTIVE=31; 107 public static final int END_SUBANNOTATION_DIRECTIVE=32; 108 public static final int ENUM_DIRECTIVE=33; 109 public static final int EPILOGUE_DIRECTIVE=34; 110 public static final int EQUAL=35; 111 public static final int FIELD_DIRECTIVE=36; 112 public static final int FIELD_OFFSET=37; 113 public static final int FLOAT_LITERAL=38; 114 public static final int FLOAT_LITERAL_OR_ID=39; 115 public static final int IMPLEMENTS_DIRECTIVE=40; 116 public static final int INLINE_INDEX=41; 117 public static final int INSTRUCTION_FORMAT10t=42; 118 public static final int INSTRUCTION_FORMAT10x=43; 119 public static final int INSTRUCTION_FORMAT10x_ODEX=44; 120 public static final int INSTRUCTION_FORMAT11n=45; 121 public static final int INSTRUCTION_FORMAT11x=46; 122 public static final int INSTRUCTION_FORMAT12x=47; 123 public static final int INSTRUCTION_FORMAT12x_OR_ID=48; 124 public static final int INSTRUCTION_FORMAT20bc=49; 125 public static final int INSTRUCTION_FORMAT20t=50; 126 public static final int INSTRUCTION_FORMAT21c_FIELD=51; 127 public static final int INSTRUCTION_FORMAT21c_FIELD_ODEX=52; 128 public static final int INSTRUCTION_FORMAT21c_STRING=53; 129 public static final int INSTRUCTION_FORMAT21c_TYPE=54; 130 public static final int INSTRUCTION_FORMAT21ih=55; 131 public static final int INSTRUCTION_FORMAT21lh=56; 132 public static final int INSTRUCTION_FORMAT21s=57; 133 public static final int INSTRUCTION_FORMAT21t=58; 134 public static final int INSTRUCTION_FORMAT22b=59; 135 public static final int INSTRUCTION_FORMAT22c_FIELD=60; 136 public static final int INSTRUCTION_FORMAT22c_FIELD_ODEX=61; 137 public static final int INSTRUCTION_FORMAT22c_TYPE=62; 138 public static final int INSTRUCTION_FORMAT22cs_FIELD=63; 139 public static final int INSTRUCTION_FORMAT22s=64; 140 public static final int INSTRUCTION_FORMAT22s_OR_ID=65; 141 public static final int INSTRUCTION_FORMAT22t=66; 142 public static final int INSTRUCTION_FORMAT22x=67; 143 public static final int INSTRUCTION_FORMAT23x=68; 144 public static final int INSTRUCTION_FORMAT30t=69; 145 public static final int INSTRUCTION_FORMAT31c=70; 146 public static final int INSTRUCTION_FORMAT31i=71; 147 public static final int INSTRUCTION_FORMAT31i_OR_ID=72; 148 public static final int INSTRUCTION_FORMAT31t=73; 149 public static final int INSTRUCTION_FORMAT32x=74; 150 public static final int INSTRUCTION_FORMAT35c_METHOD=75; 151 public static final int INSTRUCTION_FORMAT35c_METHOD_ODEX=76; 152 public static final int INSTRUCTION_FORMAT35c_TYPE=77; 153 public static final int INSTRUCTION_FORMAT35mi_METHOD=78; 154 public static final int INSTRUCTION_FORMAT35ms_METHOD=79; 155 public static final int INSTRUCTION_FORMAT3rc_METHOD=80; 156 public static final int INSTRUCTION_FORMAT3rc_METHOD_ODEX=81; 157 public static final int INSTRUCTION_FORMAT3rc_TYPE=82; 158 public static final int INSTRUCTION_FORMAT3rmi_METHOD=83; 159 public static final int INSTRUCTION_FORMAT3rms_METHOD=84; 160 public static final int INSTRUCTION_FORMAT45cc_METHOD=85; 161 public static final int INSTRUCTION_FORMAT4rcc_METHOD=86; 162 public static final int INSTRUCTION_FORMAT51l=87; 163 public static final int INTEGER_LITERAL=88; 164 public static final int INVALID_TOKEN=89; 165 public static final int I_ACCESS_LIST=90; 166 public static final int I_ANNOTATION=91; 167 public static final int I_ANNOTATIONS=92; 168 public static final int I_ANNOTATION_ELEMENT=93; 169 public static final int I_ARRAY_ELEMENTS=94; 170 public static final int I_ARRAY_ELEMENT_SIZE=95; 171 public static final int I_CATCH=96; 172 public static final int I_CATCHALL=97; 173 public static final int I_CATCHES=98; 174 public static final int I_CLASS_DEF=99; 175 public static final int I_ENCODED_ARRAY=100; 176 public static final int I_ENCODED_ENUM=101; 177 public static final int I_ENCODED_FIELD=102; 178 public static final int I_ENCODED_METHOD=103; 179 public static final int I_END_LOCAL=104; 180 public static final int I_EPILOGUE=105; 181 public static final int I_FIELD=106; 182 public static final int I_FIELDS=107; 183 public static final int I_FIELD_INITIAL_VALUE=108; 184 public static final int I_FIELD_TYPE=109; 185 public static final int I_IMPLEMENTS=110; 186 public static final int I_LABEL=111; 187 public static final int I_LINE=112; 188 public static final int I_LOCAL=113; 189 public static final int I_LOCALS=114; 190 public static final int I_METHOD=115; 191 public static final int I_METHODS=116; 192 public static final int I_METHOD_PROTOTYPE=117; 193 public static final int I_METHOD_RETURN_TYPE=118; 194 public static final int I_ORDERED_METHOD_ITEMS=119; 195 public static final int I_PACKED_SWITCH_ELEMENTS=120; 196 public static final int I_PACKED_SWITCH_START_KEY=121; 197 public static final int I_PARAMETER=122; 198 public static final int I_PARAMETERS=123; 199 public static final int I_PARAMETER_NOT_SPECIFIED=124; 200 public static final int I_PROLOGUE=125; 201 public static final int I_REGISTERS=126; 202 public static final int I_REGISTER_LIST=127; 203 public static final int I_REGISTER_RANGE=128; 204 public static final int I_RESTART_LOCAL=129; 205 public static final int I_SOURCE=130; 206 public static final int I_SPARSE_SWITCH_ELEMENTS=131; 207 public static final int I_STATEMENT_ARRAY_DATA=132; 208 public static final int I_STATEMENT_FORMAT10t=133; 209 public static final int I_STATEMENT_FORMAT10x=134; 210 public static final int I_STATEMENT_FORMAT11n=135; 211 public static final int I_STATEMENT_FORMAT11x=136; 212 public static final int I_STATEMENT_FORMAT12x=137; 213 public static final int I_STATEMENT_FORMAT20bc=138; 214 public static final int I_STATEMENT_FORMAT20t=139; 215 public static final int I_STATEMENT_FORMAT21c_FIELD=140; 216 public static final int I_STATEMENT_FORMAT21c_STRING=141; 217 public static final int I_STATEMENT_FORMAT21c_TYPE=142; 218 public static final int I_STATEMENT_FORMAT21ih=143; 219 public static final int I_STATEMENT_FORMAT21lh=144; 220 public static final int I_STATEMENT_FORMAT21s=145; 221 public static final int I_STATEMENT_FORMAT21t=146; 222 public static final int I_STATEMENT_FORMAT22b=147; 223 public static final int I_STATEMENT_FORMAT22c_FIELD=148; 224 public static final int I_STATEMENT_FORMAT22c_TYPE=149; 225 public static final int I_STATEMENT_FORMAT22s=150; 226 public static final int I_STATEMENT_FORMAT22t=151; 227 public static final int I_STATEMENT_FORMAT22x=152; 228 public static final int I_STATEMENT_FORMAT23x=153; 229 public static final int I_STATEMENT_FORMAT30t=154; 230 public static final int I_STATEMENT_FORMAT31c=155; 231 public static final int I_STATEMENT_FORMAT31i=156; 232 public static final int I_STATEMENT_FORMAT31t=157; 233 public static final int I_STATEMENT_FORMAT32x=158; 234 public static final int I_STATEMENT_FORMAT35c_METHOD=159; 235 public static final int I_STATEMENT_FORMAT35c_TYPE=160; 236 public static final int I_STATEMENT_FORMAT3rc_METHOD=161; 237 public static final int I_STATEMENT_FORMAT3rc_TYPE=162; 238 public static final int I_STATEMENT_FORMAT45cc_METHOD=163; 239 public static final int I_STATEMENT_FORMAT4rcc_METHOD=164; 240 public static final int I_STATEMENT_FORMAT51l=165; 241 public static final int I_STATEMENT_PACKED_SWITCH=166; 242 public static final int I_STATEMENT_SPARSE_SWITCH=167; 243 public static final int I_SUBANNOTATION=168; 244 public static final int I_SUPER=169; 245 public static final int LINE_COMMENT=170; 246 public static final int LINE_DIRECTIVE=171; 247 public static final int LOCALS_DIRECTIVE=172; 248 public static final int LOCAL_DIRECTIVE=173; 249 public static final int LONG_LITERAL=174; 250 public static final int MEMBER_NAME=175; 251 public static final int METHOD_DIRECTIVE=176; 252 public static final int NEGATIVE_INTEGER_LITERAL=177; 253 public static final int NULL_LITERAL=178; 254 public static final int OPEN_BRACE=179; 255 public static final int OPEN_PAREN=180; 256 public static final int PACKED_SWITCH_DIRECTIVE=181; 257 public static final int PARAMETER_DIRECTIVE=182; 258 public static final int PARAM_LIST_OR_ID_PRIMITIVE_TYPE=183; 259 public static final int POSITIVE_INTEGER_LITERAL=184; 260 public static final int PRIMITIVE_TYPE=185; 261 public static final int PROLOGUE_DIRECTIVE=186; 262 public static final int REGISTER=187; 263 public static final int REGISTERS_DIRECTIVE=188; 264 public static final int RESTART_LOCAL_DIRECTIVE=189; 265 public static final int SHORT_LITERAL=190; 266 public static final int SIMPLE_NAME=191; 267 public static final int SOURCE_DIRECTIVE=192; 268 public static final int SPARSE_SWITCH_DIRECTIVE=193; 269 public static final int STRING_LITERAL=194; 270 public static final int SUBANNOTATION_DIRECTIVE=195; 271 public static final int SUPER_DIRECTIVE=196; 272 public static final int VERIFICATION_ERROR_TYPE=197; 273 public static final int VOID_TYPE=198; 274 public static final int VTABLE_INDEX=199; 275 public static final int WHITE_SPACE=200; 276 277 // delegates 278 public Parser[] getDelegates() { 279 return new Parser[] {}; 280 } 281 282 // delegators 283 284 285 public smaliParser(TokenStream input) { 286 this(input, new RecognizerSharedState()); 287 } 288 public smaliParser(TokenStream input, RecognizerSharedState state) { 289 super(input, state); 290 } 291 292 protected TreeAdaptor adaptor = new CommonTreeAdaptor(); 293 294 public void setTreeAdaptor(TreeAdaptor adaptor) { 295 this.adaptor = adaptor; 296 } 297 public TreeAdaptor getTreeAdaptor() { 298 return adaptor; 299 } 300 @Override public String[] getTokenNames() { return smaliParser.tokenNames; } 301 @Override public String getGrammarFileName() { return "smaliParser.g"; } 302 303 304 public static final int ERROR_CHANNEL = 100; 305 306 private boolean verboseErrors = false; 307 private boolean allowOdex = false; 308 private int apiLevel = 15; 309 private Opcodes opcodes = Opcodes.forApi(apiLevel); 310 311 public void setVerboseErrors(boolean verboseErrors) { 312 this.verboseErrors = verboseErrors; 313 } 314 315 public void setAllowOdex(boolean allowOdex) { 316 this.allowOdex = allowOdex; 317 } 318 319 public void setApiLevel(int apiLevel) { 320 this.opcodes = Opcodes.forApi(apiLevel); 321 this.apiLevel = apiLevel; 322 } 323 324 public String getErrorMessage(RecognitionException e, 325 String[] tokenNames) { 326 327 if (verboseErrors) { 328 List stack = getRuleInvocationStack(e, this.getClass().getName()); 329 String msg = null; 330 331 if (e instanceof NoViableAltException) { 332 NoViableAltException nvae = (NoViableAltException)e; 333 msg = " no viable alt; token="+getTokenErrorDisplay(e.token)+ 334 " (decision="+nvae.decisionNumber+ 335 " state "+nvae.stateNumber+")"+ 336 " decision=<<"+nvae.grammarDecisionDescription+">>"; 337 } else { 338 msg = super.getErrorMessage(e, tokenNames); 339 } 340 341 return stack + " " + msg; 342 } else { 343 return super.getErrorMessage(e, tokenNames); 344 } 345 } 346 347 public String getTokenErrorDisplay(Token t) { 348 if (!verboseErrors) { 349 String s = t.getText(); 350 if ( s==null ) { 351 if ( t.getType()==Token.EOF ) { 352 s = "<EOF>"; 353 } 354 else { 355 s = "<"+tokenNames[t.getType()]+">"; 356 } 357 } 358 s = s.replaceAll("\n","\\\\n"); 359 s = s.replaceAll("\r","\\\\r"); 360 s = s.replaceAll("\t","\\\\t"); 361 return "'"+s+"'"; 362 } 363 364 CommonToken ct = (CommonToken)t; 365 366 String channelStr = ""; 367 if (t.getChannel()>0) { 368 channelStr=",channel="+t.getChannel(); 369 } 370 String txt = t.getText(); 371 if ( txt!=null ) { 372 txt = txt.replaceAll("\n","\\\\n"); 373 txt = txt.replaceAll("\r","\\\\r"); 374 txt = txt.replaceAll("\t","\\\\t"); 375 } 376 else { 377 txt = "<no text>"; 378 } 379 return "[@"+t.getTokenIndex()+","+ct.getStartIndex()+":"+ct.getStopIndex()+"='"+txt+"',<"+tokenNames[t.getType()]+">"+channelStr+","+t.getLine()+":"+t.getCharPositionInLine()+"]"; 380 } 381 382 public String getErrorHeader(RecognitionException e) { 383 return getSourceName()+"["+ e.line+","+e.charPositionInLine+"]"; 384 } 385 386 private CommonTree buildTree(int type, String text, List<CommonTree> children) { 387 CommonTree root = new CommonTree(new CommonToken(type, text)); 388 for (CommonTree child: children) { 389 root.addChild(child); 390 } 391 return root; 392 } 393 394 private CommonToken getParamListSubToken(CommonToken baseToken, String str, int typeStartIndex) { 395 CommonToken token = new CommonToken(baseToken); 396 token.setStartIndex(baseToken.getStartIndex() + typeStartIndex); 397 398 switch (str.charAt(typeStartIndex)) { 399 case 'Z': 400 case 'B': 401 case 'S': 402 case 'C': 403 case 'I': 404 case 'J': 405 case 'F': 406 case 'D': 407 { 408 token.setType(PRIMITIVE_TYPE); 409 token.setText(str.substring(typeStartIndex, typeStartIndex+1)); 410 token.setStopIndex(baseToken.getStartIndex() + typeStartIndex); 411 break; 412 } 413 case 'L': 414 { 415 int i = typeStartIndex; 416 while (str.charAt(++i) != ';'); 417 418 token.setType(CLASS_DESCRIPTOR); 419 token.setText(str.substring(typeStartIndex, i + 1)); 420 token.setStopIndex(baseToken.getStartIndex() + i); 421 break; 422 } 423 case '[': 424 { 425 int i = typeStartIndex; 426 while (str.charAt(++i) == '['); 427 428 token.setType(ARRAY_TYPE_PREFIX); 429 token.setText(str.substring(typeStartIndex, i)); 430 token.setStopIndex(baseToken.getStartIndex() + i - 1); 431 break; 432 } 433 default: 434 throw new RuntimeException(String.format("Invalid character '%c' in param list \"%s\" at position %d", str.charAt(typeStartIndex), str, typeStartIndex)); 435 } 436 437 return token; 438 } 439 440 private CommonTree parseParamList(CommonToken paramListToken) { 441 String paramList = paramListToken.getText(); 442 CommonTree root = new CommonTree(); 443 444 int startIndex = paramListToken.getStartIndex(); 445 446 int i=0; 447 while (i<paramList.length()) { 448 CommonToken token = getParamListSubToken(paramListToken, paramList, i); 449 root.addChild(new CommonTree(token)); 450 i += token.getText().length(); 451 } 452 453 if (root.getChildCount() == 0) { 454 return null; 455 } 456 return root; 457 } 458 459 private void throwOdexedInstructionException(IntStream input, String odexedInstruction) 460 throws OdexedInstructionException { 461 /*this has to be done in a separate method, otherwise java will complain about the 462 auto-generated code in the rule after the throw not being reachable*/ 463 throw new OdexedInstructionException(input, odexedInstruction); 464 } 465 466 467 protected static class smali_file_scope { 468 boolean hasClassSpec; 469 boolean hasSuperSpec; 470 boolean hasSourceSpec; 471 List<CommonTree> classAnnotations; 472 } 473 protected Stack<smali_file_scope> smali_file_stack = new Stack<smali_file_scope>(); 474 475 public static class smali_file_return extends ParserRuleReturnScope { 476 CommonTree tree; 477 @Override 478 public CommonTree getTree() { return tree; } 479 }; 480 481 482 // $ANTLR start "smali_file" 483 // smaliParser.g:415:1: smali_file : ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ EOF -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) ; 484 public final smaliParser.smali_file_return smali_file() throws RecognitionException { 485 smali_file_stack.push(new smali_file_scope()); 486 smaliParser.smali_file_return retval = new smaliParser.smali_file_return(); 487 retval.start = input.LT(1); 488 489 CommonTree root_0 = null; 490 491 Token EOF8=null; 492 ParserRuleReturnScope class_spec1 =null; 493 ParserRuleReturnScope super_spec2 =null; 494 ParserRuleReturnScope implements_spec3 =null; 495 ParserRuleReturnScope source_spec4 =null; 496 ParserRuleReturnScope method5 =null; 497 ParserRuleReturnScope field6 =null; 498 ParserRuleReturnScope annotation7 =null; 499 500 CommonTree EOF8_tree=null; 501 RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF"); 502 RewriteRuleSubtreeStream stream_class_spec=new RewriteRuleSubtreeStream(adaptor,"rule class_spec"); 503 RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation"); 504 RewriteRuleSubtreeStream stream_method=new RewriteRuleSubtreeStream(adaptor,"rule method"); 505 RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field"); 506 RewriteRuleSubtreeStream stream_super_spec=new RewriteRuleSubtreeStream(adaptor,"rule super_spec"); 507 RewriteRuleSubtreeStream stream_implements_spec=new RewriteRuleSubtreeStream(adaptor,"rule implements_spec"); 508 RewriteRuleSubtreeStream stream_source_spec=new RewriteRuleSubtreeStream(adaptor,"rule source_spec"); 509 510 smali_file_stack.peek().hasClassSpec = smali_file_stack.peek().hasSuperSpec = smali_file_stack.peek().hasSourceSpec = false; 511 smali_file_stack.peek().classAnnotations = new ArrayList<CommonTree>(); 512 513 try { 514 // smaliParser.g:427:3: ( ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ EOF -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) ) 515 // smaliParser.g:428:3: ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ EOF 516 { 517 // smaliParser.g:428:3: ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ 518 int cnt1=0; 519 loop1: 520 while (true) { 521 int alt1=8; 522 int LA1_0 = input.LA(1); 523 if ( (LA1_0==CLASS_DIRECTIVE) && ((!smali_file_stack.peek().hasClassSpec))) { 524 alt1=1; 525 } 526 else if ( (LA1_0==SUPER_DIRECTIVE) && ((!smali_file_stack.peek().hasSuperSpec))) { 527 alt1=2; 528 } 529 else if ( (LA1_0==IMPLEMENTS_DIRECTIVE) ) { 530 alt1=3; 531 } 532 else if ( (LA1_0==SOURCE_DIRECTIVE) && ((!smali_file_stack.peek().hasSourceSpec))) { 533 alt1=4; 534 } 535 else if ( (LA1_0==METHOD_DIRECTIVE) ) { 536 alt1=5; 537 } 538 else if ( (LA1_0==FIELD_DIRECTIVE) ) { 539 alt1=6; 540 } 541 else if ( (LA1_0==ANNOTATION_DIRECTIVE) ) { 542 alt1=7; 543 } 544 545 switch (alt1) { 546 case 1 : 547 // smaliParser.g:428:5: {...}? => class_spec 548 { 549 if ( !((!smali_file_stack.peek().hasClassSpec)) ) { 550 throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasClassSpec"); 551 } 552 pushFollow(FOLLOW_class_spec_in_smali_file1075); 553 class_spec1=class_spec(); 554 state._fsp--; 555 556 stream_class_spec.add(class_spec1.getTree()); 557 smali_file_stack.peek().hasClassSpec = true; 558 } 559 break; 560 case 2 : 561 // smaliParser.g:429:5: {...}? => super_spec 562 { 563 if ( !((!smali_file_stack.peek().hasSuperSpec)) ) { 564 throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasSuperSpec"); 565 } 566 pushFollow(FOLLOW_super_spec_in_smali_file1086); 567 super_spec2=super_spec(); 568 state._fsp--; 569 570 stream_super_spec.add(super_spec2.getTree()); 571 smali_file_stack.peek().hasSuperSpec = true; 572 } 573 break; 574 case 3 : 575 // smaliParser.g:430:5: implements_spec 576 { 577 pushFollow(FOLLOW_implements_spec_in_smali_file1094); 578 implements_spec3=implements_spec(); 579 state._fsp--; 580 581 stream_implements_spec.add(implements_spec3.getTree()); 582 } 583 break; 584 case 4 : 585 // smaliParser.g:431:5: {...}? => source_spec 586 { 587 if ( !((!smali_file_stack.peek().hasSourceSpec)) ) { 588 throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasSourceSpec"); 589 } 590 pushFollow(FOLLOW_source_spec_in_smali_file1103); 591 source_spec4=source_spec(); 592 state._fsp--; 593 594 stream_source_spec.add(source_spec4.getTree()); 595 smali_file_stack.peek().hasSourceSpec = true; 596 } 597 break; 598 case 5 : 599 // smaliParser.g:432:5: method 600 { 601 pushFollow(FOLLOW_method_in_smali_file1111); 602 method5=method(); 603 state._fsp--; 604 605 stream_method.add(method5.getTree()); 606 } 607 break; 608 case 6 : 609 // smaliParser.g:433:5: field 610 { 611 pushFollow(FOLLOW_field_in_smali_file1117); 612 field6=field(); 613 state._fsp--; 614 615 stream_field.add(field6.getTree()); 616 } 617 break; 618 case 7 : 619 // smaliParser.g:434:5: annotation 620 { 621 pushFollow(FOLLOW_annotation_in_smali_file1123); 622 annotation7=annotation(); 623 state._fsp--; 624 625 stream_annotation.add(annotation7.getTree()); 626 smali_file_stack.peek().classAnnotations.add((annotation7!=null?((CommonTree)annotation7.getTree()):null)); 627 } 628 break; 629 630 default : 631 if ( cnt1 >= 1 ) break loop1; 632 EarlyExitException eee = new EarlyExitException(1, input); 633 throw eee; 634 } 635 cnt1++; 636 } 637 638 EOF8=(Token)match(input,EOF,FOLLOW_EOF_in_smali_file1134); 639 stream_EOF.add(EOF8); 640 641 642 if (!smali_file_stack.peek().hasClassSpec) { 643 throw new SemanticException(input, "The file must contain a .class directive"); 644 } 645 646 if (!smali_file_stack.peek().hasSuperSpec) { 647 if (!(class_spec1!=null?((smaliParser.class_spec_return)class_spec1).className:null).equals("Ljava/lang/Object;")) { 648 throw new SemanticException(input, "The file must contain a .super directive"); 649 } 650 } 651 652 // AST REWRITE 653 // elements: super_spec, method, field, implements_spec, class_spec, source_spec 654 // token labels: 655 // rule labels: retval 656 // token list labels: 657 // rule list labels: 658 // wildcard labels: 659 retval.tree = root_0; 660 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 661 662 root_0 = (CommonTree)adaptor.nil(); 663 // 448:3: -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) 664 { 665 // smaliParser.g:448:6: ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) 666 { 667 CommonTree root_1 = (CommonTree)adaptor.nil(); 668 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CLASS_DEF, "I_CLASS_DEF"), root_1); 669 adaptor.addChild(root_1, stream_class_spec.nextTree()); 670 // smaliParser.g:450:8: ( super_spec )? 671 if ( stream_super_spec.hasNext() ) { 672 adaptor.addChild(root_1, stream_super_spec.nextTree()); 673 } 674 stream_super_spec.reset(); 675 676 // smaliParser.g:451:8: ( implements_spec )* 677 while ( stream_implements_spec.hasNext() ) { 678 adaptor.addChild(root_1, stream_implements_spec.nextTree()); 679 } 680 stream_implements_spec.reset(); 681 682 // smaliParser.g:452:8: ( source_spec )? 683 if ( stream_source_spec.hasNext() ) { 684 adaptor.addChild(root_1, stream_source_spec.nextTree()); 685 } 686 stream_source_spec.reset(); 687 688 // smaliParser.g:453:8: ^( I_METHODS ( method )* ) 689 { 690 CommonTree root_2 = (CommonTree)adaptor.nil(); 691 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHODS, "I_METHODS"), root_2); 692 // smaliParser.g:453:20: ( method )* 693 while ( stream_method.hasNext() ) { 694 adaptor.addChild(root_2, stream_method.nextTree()); 695 } 696 stream_method.reset(); 697 698 adaptor.addChild(root_1, root_2); 699 } 700 701 // smaliParser.g:453:29: ^( I_FIELDS ( field )* ) 702 { 703 CommonTree root_2 = (CommonTree)adaptor.nil(); 704 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELDS, "I_FIELDS"), root_2); 705 // smaliParser.g:453:40: ( field )* 706 while ( stream_field.hasNext() ) { 707 adaptor.addChild(root_2, stream_field.nextTree()); 708 } 709 stream_field.reset(); 710 711 adaptor.addChild(root_1, root_2); 712 } 713 714 adaptor.addChild(root_1, buildTree(I_ANNOTATIONS, "I_ANNOTATIONS", smali_file_stack.peek().classAnnotations)); 715 adaptor.addChild(root_0, root_1); 716 } 717 718 } 719 720 721 retval.tree = root_0; 722 723 } 724 725 retval.stop = input.LT(-1); 726 727 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 728 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 729 730 } 731 catch (RecognitionException re) { 732 reportError(re); 733 recover(input,re); 734 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 735 } 736 finally { 737 // do for sure before leaving 738 smali_file_stack.pop(); 739 } 740 return retval; 741 } 742 // $ANTLR end "smali_file" 743 744 745 public static class class_spec_return extends ParserRuleReturnScope { 746 public String className; 747 CommonTree tree; 748 @Override 749 public CommonTree getTree() { return tree; } 750 }; 751 752 753 // $ANTLR start "class_spec" 754 // smaliParser.g:455:1: class_spec returns [String className] : CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR -> CLASS_DESCRIPTOR access_list ; 755 public final smaliParser.class_spec_return class_spec() throws RecognitionException { 756 smaliParser.class_spec_return retval = new smaliParser.class_spec_return(); 757 retval.start = input.LT(1); 758 759 CommonTree root_0 = null; 760 761 Token CLASS_DIRECTIVE9=null; 762 Token CLASS_DESCRIPTOR11=null; 763 ParserRuleReturnScope access_list10 =null; 764 765 CommonTree CLASS_DIRECTIVE9_tree=null; 766 CommonTree CLASS_DESCRIPTOR11_tree=null; 767 RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); 768 RewriteRuleTokenStream stream_CLASS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CLASS_DIRECTIVE"); 769 RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list"); 770 771 try { 772 // smaliParser.g:456:3: ( CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR -> CLASS_DESCRIPTOR access_list ) 773 // smaliParser.g:456:5: CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR 774 { 775 CLASS_DIRECTIVE9=(Token)match(input,CLASS_DIRECTIVE,FOLLOW_CLASS_DIRECTIVE_in_class_spec1221); 776 stream_CLASS_DIRECTIVE.add(CLASS_DIRECTIVE9); 777 778 pushFollow(FOLLOW_access_list_in_class_spec1223); 779 access_list10=access_list(); 780 state._fsp--; 781 782 stream_access_list.add(access_list10.getTree()); 783 CLASS_DESCRIPTOR11=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_class_spec1225); 784 stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR11); 785 786 retval.className = (CLASS_DESCRIPTOR11!=null?CLASS_DESCRIPTOR11.getText():null); 787 // AST REWRITE 788 // elements: access_list, CLASS_DESCRIPTOR 789 // token labels: 790 // rule labels: retval 791 // token list labels: 792 // rule list labels: 793 // wildcard labels: 794 retval.tree = root_0; 795 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 796 797 root_0 = (CommonTree)adaptor.nil(); 798 // 456:89: -> CLASS_DESCRIPTOR access_list 799 { 800 adaptor.addChild(root_0, stream_CLASS_DESCRIPTOR.nextNode()); 801 adaptor.addChild(root_0, stream_access_list.nextTree()); 802 } 803 804 805 retval.tree = root_0; 806 807 } 808 809 retval.stop = input.LT(-1); 810 811 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 812 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 813 814 } 815 catch (RecognitionException re) { 816 reportError(re); 817 recover(input,re); 818 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 819 } 820 finally { 821 // do for sure before leaving 822 } 823 return retval; 824 } 825 // $ANTLR end "class_spec" 826 827 828 public static class super_spec_return extends ParserRuleReturnScope { 829 CommonTree tree; 830 @Override 831 public CommonTree getTree() { return tree; } 832 }; 833 834 835 // $ANTLR start "super_spec" 836 // smaliParser.g:458:1: super_spec : SUPER_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) ; 837 public final smaliParser.super_spec_return super_spec() throws RecognitionException { 838 smaliParser.super_spec_return retval = new smaliParser.super_spec_return(); 839 retval.start = input.LT(1); 840 841 CommonTree root_0 = null; 842 843 Token SUPER_DIRECTIVE12=null; 844 Token CLASS_DESCRIPTOR13=null; 845 846 CommonTree SUPER_DIRECTIVE12_tree=null; 847 CommonTree CLASS_DESCRIPTOR13_tree=null; 848 RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); 849 RewriteRuleTokenStream stream_SUPER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SUPER_DIRECTIVE"); 850 851 try { 852 // smaliParser.g:459:3: ( SUPER_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) ) 853 // smaliParser.g:459:5: SUPER_DIRECTIVE CLASS_DESCRIPTOR 854 { 855 SUPER_DIRECTIVE12=(Token)match(input,SUPER_DIRECTIVE,FOLLOW_SUPER_DIRECTIVE_in_super_spec1243); 856 stream_SUPER_DIRECTIVE.add(SUPER_DIRECTIVE12); 857 858 CLASS_DESCRIPTOR13=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_super_spec1245); 859 stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR13); 860 861 // AST REWRITE 862 // elements: CLASS_DESCRIPTOR 863 // token labels: 864 // rule labels: retval 865 // token list labels: 866 // rule list labels: 867 // wildcard labels: 868 retval.tree = root_0; 869 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 870 871 root_0 = (CommonTree)adaptor.nil(); 872 // 459:38: -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) 873 { 874 // smaliParser.g:459:41: ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) 875 { 876 CommonTree root_1 = (CommonTree)adaptor.nil(); 877 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUPER, (retval.start), "I_SUPER"), root_1); 878 adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode()); 879 adaptor.addChild(root_0, root_1); 880 } 881 882 } 883 884 885 retval.tree = root_0; 886 887 } 888 889 retval.stop = input.LT(-1); 890 891 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 892 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 893 894 } 895 catch (RecognitionException re) { 896 reportError(re); 897 recover(input,re); 898 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 899 } 900 finally { 901 // do for sure before leaving 902 } 903 return retval; 904 } 905 // $ANTLR end "super_spec" 906 907 908 public static class implements_spec_return extends ParserRuleReturnScope { 909 CommonTree tree; 910 @Override 911 public CommonTree getTree() { return tree; } 912 }; 913 914 915 // $ANTLR start "implements_spec" 916 // smaliParser.g:461:1: implements_spec : IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) ; 917 public final smaliParser.implements_spec_return implements_spec() throws RecognitionException { 918 smaliParser.implements_spec_return retval = new smaliParser.implements_spec_return(); 919 retval.start = input.LT(1); 920 921 CommonTree root_0 = null; 922 923 Token IMPLEMENTS_DIRECTIVE14=null; 924 Token CLASS_DESCRIPTOR15=null; 925 926 CommonTree IMPLEMENTS_DIRECTIVE14_tree=null; 927 CommonTree CLASS_DESCRIPTOR15_tree=null; 928 RewriteRuleTokenStream stream_IMPLEMENTS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token IMPLEMENTS_DIRECTIVE"); 929 RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); 930 931 try { 932 // smaliParser.g:462:3: ( IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) ) 933 // smaliParser.g:462:5: IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR 934 { 935 IMPLEMENTS_DIRECTIVE14=(Token)match(input,IMPLEMENTS_DIRECTIVE,FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec1264); 936 stream_IMPLEMENTS_DIRECTIVE.add(IMPLEMENTS_DIRECTIVE14); 937 938 CLASS_DESCRIPTOR15=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_implements_spec1266); 939 stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR15); 940 941 // AST REWRITE 942 // elements: CLASS_DESCRIPTOR 943 // token labels: 944 // rule labels: retval 945 // token list labels: 946 // rule list labels: 947 // wildcard labels: 948 retval.tree = root_0; 949 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 950 951 root_0 = (CommonTree)adaptor.nil(); 952 // 462:43: -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) 953 { 954 // smaliParser.g:462:46: ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) 955 { 956 CommonTree root_1 = (CommonTree)adaptor.nil(); 957 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_IMPLEMENTS, (retval.start), "I_IMPLEMENTS"), root_1); 958 adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode()); 959 adaptor.addChild(root_0, root_1); 960 } 961 962 } 963 964 965 retval.tree = root_0; 966 967 } 968 969 retval.stop = input.LT(-1); 970 971 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 972 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 973 974 } 975 catch (RecognitionException re) { 976 reportError(re); 977 recover(input,re); 978 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 979 } 980 finally { 981 // do for sure before leaving 982 } 983 return retval; 984 } 985 // $ANTLR end "implements_spec" 986 987 988 public static class source_spec_return extends ParserRuleReturnScope { 989 CommonTree tree; 990 @Override 991 public CommonTree getTree() { return tree; } 992 }; 993 994 995 // $ANTLR start "source_spec" 996 // smaliParser.g:464:1: source_spec : SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) ; 997 public final smaliParser.source_spec_return source_spec() throws RecognitionException { 998 smaliParser.source_spec_return retval = new smaliParser.source_spec_return(); 999 retval.start = input.LT(1); 1000 1001 CommonTree root_0 = null; 1002 1003 Token SOURCE_DIRECTIVE16=null; 1004 Token STRING_LITERAL17=null; 1005 1006 CommonTree SOURCE_DIRECTIVE16_tree=null; 1007 CommonTree STRING_LITERAL17_tree=null; 1008 RewriteRuleTokenStream stream_SOURCE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SOURCE_DIRECTIVE"); 1009 RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); 1010 1011 try { 1012 // smaliParser.g:465:3: ( SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) ) 1013 // smaliParser.g:465:5: SOURCE_DIRECTIVE STRING_LITERAL 1014 { 1015 SOURCE_DIRECTIVE16=(Token)match(input,SOURCE_DIRECTIVE,FOLLOW_SOURCE_DIRECTIVE_in_source_spec1285); 1016 stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE16); 1017 1018 STRING_LITERAL17=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_source_spec1287); 1019 stream_STRING_LITERAL.add(STRING_LITERAL17); 1020 1021 // AST REWRITE 1022 // elements: STRING_LITERAL 1023 // token labels: 1024 // rule labels: retval 1025 // token list labels: 1026 // rule list labels: 1027 // wildcard labels: 1028 retval.tree = root_0; 1029 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 1030 1031 root_0 = (CommonTree)adaptor.nil(); 1032 // 465:37: -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) 1033 { 1034 // smaliParser.g:465:40: ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) 1035 { 1036 CommonTree root_1 = (CommonTree)adaptor.nil(); 1037 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SOURCE, (retval.start), "I_SOURCE"), root_1); 1038 adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); 1039 adaptor.addChild(root_0, root_1); 1040 } 1041 1042 } 1043 1044 1045 retval.tree = root_0; 1046 1047 } 1048 1049 retval.stop = input.LT(-1); 1050 1051 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 1052 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 1053 1054 } 1055 catch (RecognitionException re) { 1056 reportError(re); 1057 recover(input,re); 1058 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 1059 } 1060 finally { 1061 // do for sure before leaving 1062 } 1063 return retval; 1064 } 1065 // $ANTLR end "source_spec" 1066 1067 1068 public static class access_list_return extends ParserRuleReturnScope { 1069 CommonTree tree; 1070 @Override 1071 public CommonTree getTree() { return tree; } 1072 }; 1073 1074 1075 // $ANTLR start "access_list" 1076 // smaliParser.g:467:1: access_list : ( ACCESS_SPEC )* -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) ; 1077 public final smaliParser.access_list_return access_list() throws RecognitionException { 1078 smaliParser.access_list_return retval = new smaliParser.access_list_return(); 1079 retval.start = input.LT(1); 1080 1081 CommonTree root_0 = null; 1082 1083 Token ACCESS_SPEC18=null; 1084 1085 CommonTree ACCESS_SPEC18_tree=null; 1086 RewriteRuleTokenStream stream_ACCESS_SPEC=new RewriteRuleTokenStream(adaptor,"token ACCESS_SPEC"); 1087 1088 try { 1089 // smaliParser.g:468:3: ( ( ACCESS_SPEC )* -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) ) 1090 // smaliParser.g:468:5: ( ACCESS_SPEC )* 1091 { 1092 // smaliParser.g:468:5: ( ACCESS_SPEC )* 1093 loop2: 1094 while (true) { 1095 int alt2=2; 1096 int LA2_0 = input.LA(1); 1097 if ( (LA2_0==ACCESS_SPEC) ) { 1098 int LA2_2 = input.LA(2); 1099 if ( (LA2_2==ACCESS_SPEC||LA2_2==ANNOTATION_VISIBILITY||LA2_2==BOOL_LITERAL||LA2_2==CLASS_DESCRIPTOR||LA2_2==DOUBLE_LITERAL_OR_ID||LA2_2==FLOAT_LITERAL_OR_ID||(LA2_2 >= INSTRUCTION_FORMAT10t && LA2_2 <= INSTRUCTION_FORMAT10x_ODEX)||LA2_2==INSTRUCTION_FORMAT11x||LA2_2==INSTRUCTION_FORMAT12x_OR_ID||(LA2_2 >= INSTRUCTION_FORMAT21c_FIELD && LA2_2 <= INSTRUCTION_FORMAT21c_TYPE)||LA2_2==INSTRUCTION_FORMAT21t||(LA2_2 >= INSTRUCTION_FORMAT22c_FIELD && LA2_2 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA2_2 >= INSTRUCTION_FORMAT22s_OR_ID && LA2_2 <= INSTRUCTION_FORMAT22t)||LA2_2==INSTRUCTION_FORMAT23x||(LA2_2 >= INSTRUCTION_FORMAT31i_OR_ID && LA2_2 <= INSTRUCTION_FORMAT31t)||(LA2_2 >= INSTRUCTION_FORMAT35c_METHOD && LA2_2 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA2_2 >= INSTRUCTION_FORMAT45cc_METHOD && LA2_2 <= INSTRUCTION_FORMAT51l)||LA2_2==MEMBER_NAME||(LA2_2 >= NEGATIVE_INTEGER_LITERAL && LA2_2 <= NULL_LITERAL)||(LA2_2 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA2_2 <= PRIMITIVE_TYPE)||LA2_2==REGISTER||LA2_2==SIMPLE_NAME||(LA2_2 >= VERIFICATION_ERROR_TYPE && LA2_2 <= VOID_TYPE)) ) { 1100 alt2=1; 1101 } 1102 1103 } 1104 1105 switch (alt2) { 1106 case 1 : 1107 // smaliParser.g:468:5: ACCESS_SPEC 1108 { 1109 ACCESS_SPEC18=(Token)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_access_list1306); 1110 stream_ACCESS_SPEC.add(ACCESS_SPEC18); 1111 1112 } 1113 break; 1114 1115 default : 1116 break loop2; 1117 } 1118 } 1119 1120 // AST REWRITE 1121 // elements: ACCESS_SPEC 1122 // token labels: 1123 // rule labels: retval 1124 // token list labels: 1125 // rule list labels: 1126 // wildcard labels: 1127 retval.tree = root_0; 1128 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 1129 1130 root_0 = (CommonTree)adaptor.nil(); 1131 // 468:18: -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) 1132 { 1133 // smaliParser.g:468:21: ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) 1134 { 1135 CommonTree root_1 = (CommonTree)adaptor.nil(); 1136 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ACCESS_LIST, (retval.start), "I_ACCESS_LIST"), root_1); 1137 // smaliParser.g:468:61: ( ACCESS_SPEC )* 1138 while ( stream_ACCESS_SPEC.hasNext() ) { 1139 adaptor.addChild(root_1, stream_ACCESS_SPEC.nextNode()); 1140 } 1141 stream_ACCESS_SPEC.reset(); 1142 1143 adaptor.addChild(root_0, root_1); 1144 } 1145 1146 } 1147 1148 1149 retval.tree = root_0; 1150 1151 } 1152 1153 retval.stop = input.LT(-1); 1154 1155 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 1156 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 1157 1158 } 1159 catch (RecognitionException re) { 1160 reportError(re); 1161 recover(input,re); 1162 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 1163 } 1164 finally { 1165 // do for sure before leaving 1166 } 1167 return retval; 1168 } 1169 // $ANTLR end "access_list" 1170 1171 1172 public static class field_return extends ParserRuleReturnScope { 1173 CommonTree tree; 1174 @Override 1175 public CommonTree getTree() { return tree; } 1176 }; 1177 1178 1179 // $ANTLR start "field" 1180 // smaliParser.g:475:1: field : FIELD_DIRECTIVE access_list member_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) ; 1181 public final smaliParser.field_return field() throws RecognitionException { 1182 smaliParser.field_return retval = new smaliParser.field_return(); 1183 retval.start = input.LT(1); 1184 1185 CommonTree root_0 = null; 1186 1187 Token FIELD_DIRECTIVE19=null; 1188 Token COLON22=null; 1189 Token EQUAL24=null; 1190 Token END_FIELD_DIRECTIVE27=null; 1191 ParserRuleReturnScope access_list20 =null; 1192 ParserRuleReturnScope member_name21 =null; 1193 ParserRuleReturnScope nonvoid_type_descriptor23 =null; 1194 ParserRuleReturnScope literal25 =null; 1195 ParserRuleReturnScope annotation26 =null; 1196 1197 CommonTree FIELD_DIRECTIVE19_tree=null; 1198 CommonTree COLON22_tree=null; 1199 CommonTree EQUAL24_tree=null; 1200 CommonTree END_FIELD_DIRECTIVE27_tree=null; 1201 RewriteRuleTokenStream stream_END_FIELD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_FIELD_DIRECTIVE"); 1202 RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL"); 1203 RewriteRuleTokenStream stream_FIELD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token FIELD_DIRECTIVE"); 1204 RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); 1205 RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation"); 1206 RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list"); 1207 RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); 1208 RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name"); 1209 RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal"); 1210 1211 List<CommonTree> annotations = new ArrayList<CommonTree>(); 1212 try { 1213 // smaliParser.g:477:3: ( FIELD_DIRECTIVE access_list member_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) ) 1214 // smaliParser.g:477:5: FIELD_DIRECTIVE access_list member_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) 1215 { 1216 FIELD_DIRECTIVE19=(Token)match(input,FIELD_DIRECTIVE,FOLLOW_FIELD_DIRECTIVE_in_field1337); 1217 stream_FIELD_DIRECTIVE.add(FIELD_DIRECTIVE19); 1218 1219 pushFollow(FOLLOW_access_list_in_field1339); 1220 access_list20=access_list(); 1221 state._fsp--; 1222 1223 stream_access_list.add(access_list20.getTree()); 1224 pushFollow(FOLLOW_member_name_in_field1341); 1225 member_name21=member_name(); 1226 state._fsp--; 1227 1228 stream_member_name.add(member_name21.getTree()); 1229 COLON22=(Token)match(input,COLON,FOLLOW_COLON_in_field1343); 1230 stream_COLON.add(COLON22); 1231 1232 pushFollow(FOLLOW_nonvoid_type_descriptor_in_field1345); 1233 nonvoid_type_descriptor23=nonvoid_type_descriptor(); 1234 state._fsp--; 1235 1236 stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor23.getTree()); 1237 // smaliParser.g:477:75: ( EQUAL literal )? 1238 int alt3=2; 1239 int LA3_0 = input.LA(1); 1240 if ( (LA3_0==EQUAL) ) { 1241 alt3=1; 1242 } 1243 switch (alt3) { 1244 case 1 : 1245 // smaliParser.g:477:76: EQUAL literal 1246 { 1247 EQUAL24=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_field1348); 1248 stream_EQUAL.add(EQUAL24); 1249 1250 pushFollow(FOLLOW_literal_in_field1350); 1251 literal25=literal(); 1252 state._fsp--; 1253 1254 stream_literal.add(literal25.getTree()); 1255 } 1256 break; 1257 1258 } 1259 1260 // smaliParser.g:478:5: ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) 1261 // smaliParser.g:478:7: ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) 1262 { 1263 // smaliParser.g:478:7: ({...}? annotation )* 1264 loop4: 1265 while (true) { 1266 int alt4=2; 1267 int LA4_0 = input.LA(1); 1268 if ( (LA4_0==ANNOTATION_DIRECTIVE) ) { 1269 int LA4_9 = input.LA(2); 1270 if ( ((input.LA(1) == ANNOTATION_DIRECTIVE)) ) { 1271 alt4=1; 1272 } 1273 1274 } 1275 1276 switch (alt4) { 1277 case 1 : 1278 // smaliParser.g:478:8: {...}? annotation 1279 { 1280 if ( !((input.LA(1) == ANNOTATION_DIRECTIVE)) ) { 1281 throw new FailedPredicateException(input, "field", "input.LA(1) == ANNOTATION_DIRECTIVE"); 1282 } 1283 pushFollow(FOLLOW_annotation_in_field1363); 1284 annotation26=annotation(); 1285 state._fsp--; 1286 1287 stream_annotation.add(annotation26.getTree()); 1288 annotations.add((annotation26!=null?((CommonTree)annotation26.getTree()):null)); 1289 } 1290 break; 1291 1292 default : 1293 break loop4; 1294 } 1295 } 1296 1297 // smaliParser.g:479:7: ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) 1298 int alt5=2; 1299 int LA5_0 = input.LA(1); 1300 if ( (LA5_0==END_FIELD_DIRECTIVE) ) { 1301 alt5=1; 1302 } 1303 else if ( (LA5_0==EOF||LA5_0==ANNOTATION_DIRECTIVE||LA5_0==CLASS_DIRECTIVE||LA5_0==FIELD_DIRECTIVE||LA5_0==IMPLEMENTS_DIRECTIVE||LA5_0==METHOD_DIRECTIVE||LA5_0==SOURCE_DIRECTIVE||LA5_0==SUPER_DIRECTIVE) ) { 1304 alt5=2; 1305 } 1306 1307 else { 1308 NoViableAltException nvae = 1309 new NoViableAltException("", 5, 0, input); 1310 throw nvae; 1311 } 1312 1313 switch (alt5) { 1314 case 1 : 1315 // smaliParser.g:479:9: END_FIELD_DIRECTIVE 1316 { 1317 END_FIELD_DIRECTIVE27=(Token)match(input,END_FIELD_DIRECTIVE,FOLLOW_END_FIELD_DIRECTIVE_in_field1377); 1318 stream_END_FIELD_DIRECTIVE.add(END_FIELD_DIRECTIVE27); 1319 1320 // AST REWRITE 1321 // elements: access_list, nonvoid_type_descriptor, annotation, member_name, literal 1322 // token labels: 1323 // rule labels: retval 1324 // token list labels: 1325 // rule list labels: 1326 // wildcard labels: 1327 retval.tree = root_0; 1328 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 1329 1330 root_0 = (CommonTree)adaptor.nil(); 1331 // 480:9: -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) 1332 { 1333 // smaliParser.g:480:12: ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) 1334 { 1335 CommonTree root_1 = (CommonTree)adaptor.nil(); 1336 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD, (retval.start), "I_FIELD"), root_1); 1337 adaptor.addChild(root_1, stream_member_name.nextTree()); 1338 adaptor.addChild(root_1, stream_access_list.nextTree()); 1339 // smaliParser.g:480:65: ^( I_FIELD_TYPE nonvoid_type_descriptor ) 1340 { 1341 CommonTree root_2 = (CommonTree)adaptor.nil(); 1342 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_TYPE, "I_FIELD_TYPE"), root_2); 1343 adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree()); 1344 adaptor.addChild(root_1, root_2); 1345 } 1346 1347 // smaliParser.g:480:105: ( ^( I_FIELD_INITIAL_VALUE literal ) )? 1348 if ( stream_literal.hasNext() ) { 1349 // smaliParser.g:480:105: ^( I_FIELD_INITIAL_VALUE literal ) 1350 { 1351 CommonTree root_2 = (CommonTree)adaptor.nil(); 1352 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_INITIAL_VALUE, "I_FIELD_INITIAL_VALUE"), root_2); 1353 adaptor.addChild(root_2, stream_literal.nextTree()); 1354 adaptor.addChild(root_1, root_2); 1355 } 1356 1357 } 1358 stream_literal.reset(); 1359 1360 // smaliParser.g:480:139: ^( I_ANNOTATIONS ( annotation )* ) 1361 { 1362 CommonTree root_2 = (CommonTree)adaptor.nil(); 1363 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2); 1364 // smaliParser.g:480:155: ( annotation )* 1365 while ( stream_annotation.hasNext() ) { 1366 adaptor.addChild(root_2, stream_annotation.nextTree()); 1367 } 1368 stream_annotation.reset(); 1369 1370 adaptor.addChild(root_1, root_2); 1371 } 1372 1373 adaptor.addChild(root_0, root_1); 1374 } 1375 1376 } 1377 1378 1379 retval.tree = root_0; 1380 1381 } 1382 break; 1383 case 2 : 1384 // smaliParser.g:481:21: 1385 { 1386 smali_file_stack.peek().classAnnotations.addAll(annotations); 1387 // AST REWRITE 1388 // elements: member_name, access_list, literal, nonvoid_type_descriptor 1389 // token labels: 1390 // rule labels: retval 1391 // token list labels: 1392 // rule list labels: 1393 // wildcard labels: 1394 retval.tree = root_0; 1395 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 1396 1397 root_0 = (CommonTree)adaptor.nil(); 1398 // 482:9: -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) 1399 { 1400 // smaliParser.g:482:12: ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) 1401 { 1402 CommonTree root_1 = (CommonTree)adaptor.nil(); 1403 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD, (retval.start), "I_FIELD"), root_1); 1404 adaptor.addChild(root_1, stream_member_name.nextTree()); 1405 adaptor.addChild(root_1, stream_access_list.nextTree()); 1406 // smaliParser.g:482:65: ^( I_FIELD_TYPE nonvoid_type_descriptor ) 1407 { 1408 CommonTree root_2 = (CommonTree)adaptor.nil(); 1409 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_TYPE, "I_FIELD_TYPE"), root_2); 1410 adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree()); 1411 adaptor.addChild(root_1, root_2); 1412 } 1413 1414 // smaliParser.g:482:105: ( ^( I_FIELD_INITIAL_VALUE literal ) )? 1415 if ( stream_literal.hasNext() ) { 1416 // smaliParser.g:482:105: ^( I_FIELD_INITIAL_VALUE literal ) 1417 { 1418 CommonTree root_2 = (CommonTree)adaptor.nil(); 1419 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_INITIAL_VALUE, "I_FIELD_INITIAL_VALUE"), root_2); 1420 adaptor.addChild(root_2, stream_literal.nextTree()); 1421 adaptor.addChild(root_1, root_2); 1422 } 1423 1424 } 1425 stream_literal.reset(); 1426 1427 // smaliParser.g:482:139: ^( I_ANNOTATIONS ) 1428 { 1429 CommonTree root_2 = (CommonTree)adaptor.nil(); 1430 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2); 1431 adaptor.addChild(root_1, root_2); 1432 } 1433 1434 adaptor.addChild(root_0, root_1); 1435 } 1436 1437 } 1438 1439 1440 retval.tree = root_0; 1441 1442 } 1443 break; 1444 1445 } 1446 1447 } 1448 1449 } 1450 1451 retval.stop = input.LT(-1); 1452 1453 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 1454 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 1455 1456 } 1457 catch (RecognitionException re) { 1458 reportError(re); 1459 recover(input,re); 1460 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 1461 } 1462 finally { 1463 // do for sure before leaving 1464 } 1465 return retval; 1466 } 1467 // $ANTLR end "field" 1468 1469 1470 public static class method_return extends ParserRuleReturnScope { 1471 CommonTree tree; 1472 @Override 1473 public CommonTree getTree() { return tree; } 1474 }; 1475 1476 1477 // $ANTLR start "method" 1478 // smaliParser.g:486:1: method : METHOD_DIRECTIVE access_list member_name method_prototype statements_and_directives END_METHOD_DIRECTIVE -> ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives ) ; 1479 public final smaliParser.method_return method() throws RecognitionException { 1480 smaliParser.method_return retval = new smaliParser.method_return(); 1481 retval.start = input.LT(1); 1482 1483 CommonTree root_0 = null; 1484 1485 Token METHOD_DIRECTIVE28=null; 1486 Token END_METHOD_DIRECTIVE33=null; 1487 ParserRuleReturnScope access_list29 =null; 1488 ParserRuleReturnScope member_name30 =null; 1489 ParserRuleReturnScope method_prototype31 =null; 1490 ParserRuleReturnScope statements_and_directives32 =null; 1491 1492 CommonTree METHOD_DIRECTIVE28_tree=null; 1493 CommonTree END_METHOD_DIRECTIVE33_tree=null; 1494 RewriteRuleTokenStream stream_END_METHOD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_METHOD_DIRECTIVE"); 1495 RewriteRuleTokenStream stream_METHOD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token METHOD_DIRECTIVE"); 1496 RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype"); 1497 RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list"); 1498 RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name"); 1499 RewriteRuleSubtreeStream stream_statements_and_directives=new RewriteRuleSubtreeStream(adaptor,"rule statements_and_directives"); 1500 1501 try { 1502 // smaliParser.g:487:3: ( METHOD_DIRECTIVE access_list member_name method_prototype statements_and_directives END_METHOD_DIRECTIVE -> ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives ) ) 1503 // smaliParser.g:487:5: METHOD_DIRECTIVE access_list member_name method_prototype statements_and_directives END_METHOD_DIRECTIVE 1504 { 1505 METHOD_DIRECTIVE28=(Token)match(input,METHOD_DIRECTIVE,FOLLOW_METHOD_DIRECTIVE_in_method1488); 1506 stream_METHOD_DIRECTIVE.add(METHOD_DIRECTIVE28); 1507 1508 pushFollow(FOLLOW_access_list_in_method1490); 1509 access_list29=access_list(); 1510 state._fsp--; 1511 1512 stream_access_list.add(access_list29.getTree()); 1513 pushFollow(FOLLOW_member_name_in_method1492); 1514 member_name30=member_name(); 1515 state._fsp--; 1516 1517 stream_member_name.add(member_name30.getTree()); 1518 pushFollow(FOLLOW_method_prototype_in_method1494); 1519 method_prototype31=method_prototype(); 1520 state._fsp--; 1521 1522 stream_method_prototype.add(method_prototype31.getTree()); 1523 pushFollow(FOLLOW_statements_and_directives_in_method1496); 1524 statements_and_directives32=statements_and_directives(); 1525 state._fsp--; 1526 1527 stream_statements_and_directives.add(statements_and_directives32.getTree()); 1528 END_METHOD_DIRECTIVE33=(Token)match(input,END_METHOD_DIRECTIVE,FOLLOW_END_METHOD_DIRECTIVE_in_method1502); 1529 stream_END_METHOD_DIRECTIVE.add(END_METHOD_DIRECTIVE33); 1530 1531 // AST REWRITE 1532 // elements: method_prototype, access_list, member_name, statements_and_directives 1533 // token labels: 1534 // rule labels: retval 1535 // token list labels: 1536 // rule list labels: 1537 // wildcard labels: 1538 retval.tree = root_0; 1539 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 1540 1541 root_0 = (CommonTree)adaptor.nil(); 1542 // 489:5: -> ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives ) 1543 { 1544 // smaliParser.g:489:8: ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives ) 1545 { 1546 CommonTree root_1 = (CommonTree)adaptor.nil(); 1547 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD, (retval.start), "I_METHOD"), root_1); 1548 adaptor.addChild(root_1, stream_member_name.nextTree()); 1549 adaptor.addChild(root_1, stream_method_prototype.nextTree()); 1550 adaptor.addChild(root_1, stream_access_list.nextTree()); 1551 adaptor.addChild(root_1, stream_statements_and_directives.nextTree()); 1552 adaptor.addChild(root_0, root_1); 1553 } 1554 1555 } 1556 1557 1558 retval.tree = root_0; 1559 1560 } 1561 1562 retval.stop = input.LT(-1); 1563 1564 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 1565 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 1566 1567 } 1568 catch (RecognitionException re) { 1569 reportError(re); 1570 recover(input,re); 1571 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 1572 } 1573 finally { 1574 // do for sure before leaving 1575 } 1576 return retval; 1577 } 1578 // $ANTLR end "method" 1579 1580 1581 protected static class statements_and_directives_scope { 1582 boolean hasRegistersDirective; 1583 List<CommonTree> methodAnnotations; 1584 } 1585 protected Stack<statements_and_directives_scope> statements_and_directives_stack = new Stack<statements_and_directives_scope>(); 1586 1587 public static class statements_and_directives_return extends ParserRuleReturnScope { 1588 CommonTree tree; 1589 @Override 1590 public CommonTree getTree() { return tree; } 1591 }; 1592 1593 1594 // $ANTLR start "statements_and_directives" 1595 // smaliParser.g:491:1: statements_and_directives : ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )* -> ( registers_directive )? ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) ; 1596 public final smaliParser.statements_and_directives_return statements_and_directives() throws RecognitionException { 1597 statements_and_directives_stack.push(new statements_and_directives_scope()); 1598 smaliParser.statements_and_directives_return retval = new smaliParser.statements_and_directives_return(); 1599 retval.start = input.LT(1); 1600 1601 CommonTree root_0 = null; 1602 1603 ParserRuleReturnScope ordered_method_item34 =null; 1604 ParserRuleReturnScope registers_directive35 =null; 1605 ParserRuleReturnScope catch_directive36 =null; 1606 ParserRuleReturnScope catchall_directive37 =null; 1607 ParserRuleReturnScope parameter_directive38 =null; 1608 ParserRuleReturnScope annotation39 =null; 1609 1610 RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation"); 1611 RewriteRuleSubtreeStream stream_catchall_directive=new RewriteRuleSubtreeStream(adaptor,"rule catchall_directive"); 1612 RewriteRuleSubtreeStream stream_registers_directive=new RewriteRuleSubtreeStream(adaptor,"rule registers_directive"); 1613 RewriteRuleSubtreeStream stream_catch_directive=new RewriteRuleSubtreeStream(adaptor,"rule catch_directive"); 1614 RewriteRuleSubtreeStream stream_ordered_method_item=new RewriteRuleSubtreeStream(adaptor,"rule ordered_method_item"); 1615 RewriteRuleSubtreeStream stream_parameter_directive=new RewriteRuleSubtreeStream(adaptor,"rule parameter_directive"); 1616 1617 try { 1618 // smaliParser.g:497:3: ( ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )* -> ( registers_directive )? ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) ) 1619 // smaliParser.g:497:5: ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )* 1620 { 1621 1622 statements_and_directives_stack.peek().hasRegistersDirective = false; 1623 statements_and_directives_stack.peek().methodAnnotations = new ArrayList<CommonTree>(); 1624 1625 // smaliParser.g:501:5: ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )* 1626 loop6: 1627 while (true) { 1628 int alt6=7; 1629 switch ( input.LA(1) ) { 1630 case ARRAY_DATA_DIRECTIVE: 1631 case COLON: 1632 case END_LOCAL_DIRECTIVE: 1633 case EPILOGUE_DIRECTIVE: 1634 case INSTRUCTION_FORMAT10t: 1635 case INSTRUCTION_FORMAT10x: 1636 case INSTRUCTION_FORMAT10x_ODEX: 1637 case INSTRUCTION_FORMAT11n: 1638 case INSTRUCTION_FORMAT11x: 1639 case INSTRUCTION_FORMAT12x: 1640 case INSTRUCTION_FORMAT12x_OR_ID: 1641 case INSTRUCTION_FORMAT20bc: 1642 case INSTRUCTION_FORMAT20t: 1643 case INSTRUCTION_FORMAT21c_FIELD: 1644 case INSTRUCTION_FORMAT21c_FIELD_ODEX: 1645 case INSTRUCTION_FORMAT21c_STRING: 1646 case INSTRUCTION_FORMAT21c_TYPE: 1647 case INSTRUCTION_FORMAT21ih: 1648 case INSTRUCTION_FORMAT21lh: 1649 case INSTRUCTION_FORMAT21s: 1650 case INSTRUCTION_FORMAT21t: 1651 case INSTRUCTION_FORMAT22b: 1652 case INSTRUCTION_FORMAT22c_FIELD: 1653 case INSTRUCTION_FORMAT22c_FIELD_ODEX: 1654 case INSTRUCTION_FORMAT22c_TYPE: 1655 case INSTRUCTION_FORMAT22cs_FIELD: 1656 case INSTRUCTION_FORMAT22s: 1657 case INSTRUCTION_FORMAT22s_OR_ID: 1658 case INSTRUCTION_FORMAT22t: 1659 case INSTRUCTION_FORMAT22x: 1660 case INSTRUCTION_FORMAT23x: 1661 case INSTRUCTION_FORMAT30t: 1662 case INSTRUCTION_FORMAT31c: 1663 case INSTRUCTION_FORMAT31i: 1664 case INSTRUCTION_FORMAT31i_OR_ID: 1665 case INSTRUCTION_FORMAT31t: 1666 case INSTRUCTION_FORMAT32x: 1667 case INSTRUCTION_FORMAT35c_METHOD: 1668 case INSTRUCTION_FORMAT35c_METHOD_ODEX: 1669 case INSTRUCTION_FORMAT35c_TYPE: 1670 case INSTRUCTION_FORMAT35mi_METHOD: 1671 case INSTRUCTION_FORMAT35ms_METHOD: 1672 case INSTRUCTION_FORMAT3rc_METHOD: 1673 case INSTRUCTION_FORMAT3rc_METHOD_ODEX: 1674 case INSTRUCTION_FORMAT3rc_TYPE: 1675 case INSTRUCTION_FORMAT3rmi_METHOD: 1676 case INSTRUCTION_FORMAT3rms_METHOD: 1677 case INSTRUCTION_FORMAT45cc_METHOD: 1678 case INSTRUCTION_FORMAT4rcc_METHOD: 1679 case INSTRUCTION_FORMAT51l: 1680 case LINE_DIRECTIVE: 1681 case LOCAL_DIRECTIVE: 1682 case PACKED_SWITCH_DIRECTIVE: 1683 case PROLOGUE_DIRECTIVE: 1684 case RESTART_LOCAL_DIRECTIVE: 1685 case SOURCE_DIRECTIVE: 1686 case SPARSE_SWITCH_DIRECTIVE: 1687 { 1688 alt6=1; 1689 } 1690 break; 1691 case LOCALS_DIRECTIVE: 1692 case REGISTERS_DIRECTIVE: 1693 { 1694 alt6=2; 1695 } 1696 break; 1697 case CATCH_DIRECTIVE: 1698 { 1699 alt6=3; 1700 } 1701 break; 1702 case CATCHALL_DIRECTIVE: 1703 { 1704 alt6=4; 1705 } 1706 break; 1707 case PARAMETER_DIRECTIVE: 1708 { 1709 alt6=5; 1710 } 1711 break; 1712 case ANNOTATION_DIRECTIVE: 1713 { 1714 alt6=6; 1715 } 1716 break; 1717 } 1718 switch (alt6) { 1719 case 1 : 1720 // smaliParser.g:501:7: ordered_method_item 1721 { 1722 pushFollow(FOLLOW_ordered_method_item_in_statements_and_directives1547); 1723 ordered_method_item34=ordered_method_item(); 1724 state._fsp--; 1725 1726 stream_ordered_method_item.add(ordered_method_item34.getTree()); 1727 } 1728 break; 1729 case 2 : 1730 // smaliParser.g:502:7: registers_directive 1731 { 1732 pushFollow(FOLLOW_registers_directive_in_statements_and_directives1555); 1733 registers_directive35=registers_directive(); 1734 state._fsp--; 1735 1736 stream_registers_directive.add(registers_directive35.getTree()); 1737 } 1738 break; 1739 case 3 : 1740 // smaliParser.g:503:7: catch_directive 1741 { 1742 pushFollow(FOLLOW_catch_directive_in_statements_and_directives1563); 1743 catch_directive36=catch_directive(); 1744 state._fsp--; 1745 1746 stream_catch_directive.add(catch_directive36.getTree()); 1747 } 1748 break; 1749 case 4 : 1750 // smaliParser.g:504:7: catchall_directive 1751 { 1752 pushFollow(FOLLOW_catchall_directive_in_statements_and_directives1571); 1753 catchall_directive37=catchall_directive(); 1754 state._fsp--; 1755 1756 stream_catchall_directive.add(catchall_directive37.getTree()); 1757 } 1758 break; 1759 case 5 : 1760 // smaliParser.g:505:7: parameter_directive 1761 { 1762 pushFollow(FOLLOW_parameter_directive_in_statements_and_directives1579); 1763 parameter_directive38=parameter_directive(); 1764 state._fsp--; 1765 1766 stream_parameter_directive.add(parameter_directive38.getTree()); 1767 } 1768 break; 1769 case 6 : 1770 // smaliParser.g:506:7: annotation 1771 { 1772 pushFollow(FOLLOW_annotation_in_statements_and_directives1587); 1773 annotation39=annotation(); 1774 state._fsp--; 1775 1776 stream_annotation.add(annotation39.getTree()); 1777 statements_and_directives_stack.peek().methodAnnotations.add((annotation39!=null?((CommonTree)annotation39.getTree()):null)); 1778 } 1779 break; 1780 1781 default : 1782 break loop6; 1783 } 1784 } 1785 1786 // AST REWRITE 1787 // elements: ordered_method_item, catch_directive, catchall_directive, parameter_directive, registers_directive 1788 // token labels: 1789 // rule labels: retval 1790 // token list labels: 1791 // rule list labels: 1792 // wildcard labels: 1793 retval.tree = root_0; 1794 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 1795 1796 root_0 = (CommonTree)adaptor.nil(); 1797 // 508:5: -> ( registers_directive )? ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) 1798 { 1799 // smaliParser.g:508:8: ( registers_directive )? 1800 if ( stream_registers_directive.hasNext() ) { 1801 adaptor.addChild(root_0, stream_registers_directive.nextTree()); 1802 } 1803 stream_registers_directive.reset(); 1804 1805 // smaliParser.g:509:8: ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) 1806 { 1807 CommonTree root_1 = (CommonTree)adaptor.nil(); 1808 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ORDERED_METHOD_ITEMS, "I_ORDERED_METHOD_ITEMS"), root_1); 1809 // smaliParser.g:509:33: ( ordered_method_item )* 1810 while ( stream_ordered_method_item.hasNext() ) { 1811 adaptor.addChild(root_1, stream_ordered_method_item.nextTree()); 1812 } 1813 stream_ordered_method_item.reset(); 1814 1815 adaptor.addChild(root_0, root_1); 1816 } 1817 1818 // smaliParser.g:510:8: ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) 1819 { 1820 CommonTree root_1 = (CommonTree)adaptor.nil(); 1821 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCHES, "I_CATCHES"), root_1); 1822 // smaliParser.g:510:20: ( catch_directive )* 1823 while ( stream_catch_directive.hasNext() ) { 1824 adaptor.addChild(root_1, stream_catch_directive.nextTree()); 1825 } 1826 stream_catch_directive.reset(); 1827 1828 // smaliParser.g:510:37: ( catchall_directive )* 1829 while ( stream_catchall_directive.hasNext() ) { 1830 adaptor.addChild(root_1, stream_catchall_directive.nextTree()); 1831 } 1832 stream_catchall_directive.reset(); 1833 1834 adaptor.addChild(root_0, root_1); 1835 } 1836 1837 // smaliParser.g:511:8: ^( I_PARAMETERS ( parameter_directive )* ) 1838 { 1839 CommonTree root_1 = (CommonTree)adaptor.nil(); 1840 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETERS, "I_PARAMETERS"), root_1); 1841 // smaliParser.g:511:23: ( parameter_directive )* 1842 while ( stream_parameter_directive.hasNext() ) { 1843 adaptor.addChild(root_1, stream_parameter_directive.nextTree()); 1844 } 1845 stream_parameter_directive.reset(); 1846 1847 adaptor.addChild(root_0, root_1); 1848 } 1849 1850 adaptor.addChild(root_0, buildTree(I_ANNOTATIONS, "I_ANNOTATIONS", statements_and_directives_stack.peek().methodAnnotations)); 1851 } 1852 1853 1854 retval.tree = root_0; 1855 1856 } 1857 1858 retval.stop = input.LT(-1); 1859 1860 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 1861 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 1862 1863 } 1864 catch (RecognitionException re) { 1865 reportError(re); 1866 recover(input,re); 1867 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 1868 } 1869 finally { 1870 // do for sure before leaving 1871 statements_and_directives_stack.pop(); 1872 } 1873 return retval; 1874 } 1875 // $ANTLR end "statements_and_directives" 1876 1877 1878 public static class ordered_method_item_return extends ParserRuleReturnScope { 1879 CommonTree tree; 1880 @Override 1881 public CommonTree getTree() { return tree; } 1882 }; 1883 1884 1885 // $ANTLR start "ordered_method_item" 1886 // smaliParser.g:515:1: ordered_method_item : ( label | instruction | debug_directive ); 1887 public final smaliParser.ordered_method_item_return ordered_method_item() throws RecognitionException { 1888 smaliParser.ordered_method_item_return retval = new smaliParser.ordered_method_item_return(); 1889 retval.start = input.LT(1); 1890 1891 CommonTree root_0 = null; 1892 1893 ParserRuleReturnScope label40 =null; 1894 ParserRuleReturnScope instruction41 =null; 1895 ParserRuleReturnScope debug_directive42 =null; 1896 1897 1898 try { 1899 // smaliParser.g:516:3: ( label | instruction | debug_directive ) 1900 int alt7=3; 1901 switch ( input.LA(1) ) { 1902 case COLON: 1903 { 1904 alt7=1; 1905 } 1906 break; 1907 case ARRAY_DATA_DIRECTIVE: 1908 case INSTRUCTION_FORMAT10t: 1909 case INSTRUCTION_FORMAT10x: 1910 case INSTRUCTION_FORMAT10x_ODEX: 1911 case INSTRUCTION_FORMAT11n: 1912 case INSTRUCTION_FORMAT11x: 1913 case INSTRUCTION_FORMAT12x: 1914 case INSTRUCTION_FORMAT12x_OR_ID: 1915 case INSTRUCTION_FORMAT20bc: 1916 case INSTRUCTION_FORMAT20t: 1917 case INSTRUCTION_FORMAT21c_FIELD: 1918 case INSTRUCTION_FORMAT21c_FIELD_ODEX: 1919 case INSTRUCTION_FORMAT21c_STRING: 1920 case INSTRUCTION_FORMAT21c_TYPE: 1921 case INSTRUCTION_FORMAT21ih: 1922 case INSTRUCTION_FORMAT21lh: 1923 case INSTRUCTION_FORMAT21s: 1924 case INSTRUCTION_FORMAT21t: 1925 case INSTRUCTION_FORMAT22b: 1926 case INSTRUCTION_FORMAT22c_FIELD: 1927 case INSTRUCTION_FORMAT22c_FIELD_ODEX: 1928 case INSTRUCTION_FORMAT22c_TYPE: 1929 case INSTRUCTION_FORMAT22cs_FIELD: 1930 case INSTRUCTION_FORMAT22s: 1931 case INSTRUCTION_FORMAT22s_OR_ID: 1932 case INSTRUCTION_FORMAT22t: 1933 case INSTRUCTION_FORMAT22x: 1934 case INSTRUCTION_FORMAT23x: 1935 case INSTRUCTION_FORMAT30t: 1936 case INSTRUCTION_FORMAT31c: 1937 case INSTRUCTION_FORMAT31i: 1938 case INSTRUCTION_FORMAT31i_OR_ID: 1939 case INSTRUCTION_FORMAT31t: 1940 case INSTRUCTION_FORMAT32x: 1941 case INSTRUCTION_FORMAT35c_METHOD: 1942 case INSTRUCTION_FORMAT35c_METHOD_ODEX: 1943 case INSTRUCTION_FORMAT35c_TYPE: 1944 case INSTRUCTION_FORMAT35mi_METHOD: 1945 case INSTRUCTION_FORMAT35ms_METHOD: 1946 case INSTRUCTION_FORMAT3rc_METHOD: 1947 case INSTRUCTION_FORMAT3rc_METHOD_ODEX: 1948 case INSTRUCTION_FORMAT3rc_TYPE: 1949 case INSTRUCTION_FORMAT3rmi_METHOD: 1950 case INSTRUCTION_FORMAT3rms_METHOD: 1951 case INSTRUCTION_FORMAT45cc_METHOD: 1952 case INSTRUCTION_FORMAT4rcc_METHOD: 1953 case INSTRUCTION_FORMAT51l: 1954 case PACKED_SWITCH_DIRECTIVE: 1955 case SPARSE_SWITCH_DIRECTIVE: 1956 { 1957 alt7=2; 1958 } 1959 break; 1960 case END_LOCAL_DIRECTIVE: 1961 case EPILOGUE_DIRECTIVE: 1962 case LINE_DIRECTIVE: 1963 case LOCAL_DIRECTIVE: 1964 case PROLOGUE_DIRECTIVE: 1965 case RESTART_LOCAL_DIRECTIVE: 1966 case SOURCE_DIRECTIVE: 1967 { 1968 alt7=3; 1969 } 1970 break; 1971 default: 1972 NoViableAltException nvae = 1973 new NoViableAltException("", 7, 0, input); 1974 throw nvae; 1975 } 1976 switch (alt7) { 1977 case 1 : 1978 // smaliParser.g:516:5: label 1979 { 1980 root_0 = (CommonTree)adaptor.nil(); 1981 1982 1983 pushFollow(FOLLOW_label_in_ordered_method_item1672); 1984 label40=label(); 1985 state._fsp--; 1986 1987 adaptor.addChild(root_0, label40.getTree()); 1988 1989 } 1990 break; 1991 case 2 : 1992 // smaliParser.g:517:5: instruction 1993 { 1994 root_0 = (CommonTree)adaptor.nil(); 1995 1996 1997 pushFollow(FOLLOW_instruction_in_ordered_method_item1678); 1998 instruction41=instruction(); 1999 state._fsp--; 2000 2001 adaptor.addChild(root_0, instruction41.getTree()); 2002 2003 } 2004 break; 2005 case 3 : 2006 // smaliParser.g:518:5: debug_directive 2007 { 2008 root_0 = (CommonTree)adaptor.nil(); 2009 2010 2011 pushFollow(FOLLOW_debug_directive_in_ordered_method_item1684); 2012 debug_directive42=debug_directive(); 2013 state._fsp--; 2014 2015 adaptor.addChild(root_0, debug_directive42.getTree()); 2016 2017 } 2018 break; 2019 2020 } 2021 retval.stop = input.LT(-1); 2022 2023 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 2024 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 2025 2026 } 2027 catch (RecognitionException re) { 2028 reportError(re); 2029 recover(input,re); 2030 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 2031 } 2032 finally { 2033 // do for sure before leaving 2034 } 2035 return retval; 2036 } 2037 // $ANTLR end "ordered_method_item" 2038 2039 2040 public static class registers_directive_return extends ParserRuleReturnScope { 2041 CommonTree tree; 2042 @Override 2043 public CommonTree getTree() { return tree; } 2044 }; 2045 2046 2047 // $ANTLR start "registers_directive" 2048 // smaliParser.g:520:1: registers_directive : (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) ) ; 2049 public final smaliParser.registers_directive_return registers_directive() throws RecognitionException { 2050 smaliParser.registers_directive_return retval = new smaliParser.registers_directive_return(); 2051 retval.start = input.LT(1); 2052 2053 CommonTree root_0 = null; 2054 2055 Token directive=null; 2056 ParserRuleReturnScope regCount =null; 2057 ParserRuleReturnScope regCount2 =null; 2058 2059 CommonTree directive_tree=null; 2060 RewriteRuleTokenStream stream_LOCALS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LOCALS_DIRECTIVE"); 2061 RewriteRuleTokenStream stream_REGISTERS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token REGISTERS_DIRECTIVE"); 2062 RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal"); 2063 2064 try { 2065 // smaliParser.g:521:3: ( (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) ) ) 2066 // smaliParser.g:521:5: (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) ) 2067 { 2068 // smaliParser.g:521:5: (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) ) 2069 int alt8=2; 2070 int LA8_0 = input.LA(1); 2071 if ( (LA8_0==REGISTERS_DIRECTIVE) ) { 2072 alt8=1; 2073 } 2074 else if ( (LA8_0==LOCALS_DIRECTIVE) ) { 2075 alt8=2; 2076 } 2077 2078 else { 2079 NoViableAltException nvae = 2080 new NoViableAltException("", 8, 0, input); 2081 throw nvae; 2082 } 2083 2084 switch (alt8) { 2085 case 1 : 2086 // smaliParser.g:522:7: directive= REGISTERS_DIRECTIVE regCount= integral_literal 2087 { 2088 directive=(Token)match(input,REGISTERS_DIRECTIVE,FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive1704); 2089 stream_REGISTERS_DIRECTIVE.add(directive); 2090 2091 pushFollow(FOLLOW_integral_literal_in_registers_directive1708); 2092 regCount=integral_literal(); 2093 state._fsp--; 2094 2095 stream_integral_literal.add(regCount.getTree()); 2096 // AST REWRITE 2097 // elements: regCount 2098 // token labels: 2099 // rule labels: regCount, retval 2100 // token list labels: 2101 // rule list labels: 2102 // wildcard labels: 2103 retval.tree = root_0; 2104 RewriteRuleSubtreeStream stream_regCount=new RewriteRuleSubtreeStream(adaptor,"rule regCount",regCount!=null?regCount.getTree():null); 2105 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2106 2107 root_0 = (CommonTree)adaptor.nil(); 2108 // 522:63: -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) 2109 { 2110 // smaliParser.g:522:66: ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) 2111 { 2112 CommonTree root_1 = (CommonTree)adaptor.nil(); 2113 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTERS, directive, "I_REGISTERS"), root_1); 2114 adaptor.addChild(root_1, stream_regCount.nextTree()); 2115 adaptor.addChild(root_0, root_1); 2116 } 2117 2118 } 2119 2120 2121 retval.tree = root_0; 2122 2123 } 2124 break; 2125 case 2 : 2126 // smaliParser.g:523:7: directive= LOCALS_DIRECTIVE regCount2= integral_literal 2127 { 2128 directive=(Token)match(input,LOCALS_DIRECTIVE,FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1728); 2129 stream_LOCALS_DIRECTIVE.add(directive); 2130 2131 pushFollow(FOLLOW_integral_literal_in_registers_directive1732); 2132 regCount2=integral_literal(); 2133 state._fsp--; 2134 2135 stream_integral_literal.add(regCount2.getTree()); 2136 // AST REWRITE 2137 // elements: regCount2 2138 // token labels: 2139 // rule labels: regCount2, retval 2140 // token list labels: 2141 // rule list labels: 2142 // wildcard labels: 2143 retval.tree = root_0; 2144 RewriteRuleSubtreeStream stream_regCount2=new RewriteRuleSubtreeStream(adaptor,"rule regCount2",regCount2!=null?regCount2.getTree():null); 2145 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2146 2147 root_0 = (CommonTree)adaptor.nil(); 2148 // 523:61: -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) 2149 { 2150 // smaliParser.g:523:64: ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) 2151 { 2152 CommonTree root_1 = (CommonTree)adaptor.nil(); 2153 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LOCALS, directive, "I_LOCALS"), root_1); 2154 adaptor.addChild(root_1, stream_regCount2.nextTree()); 2155 adaptor.addChild(root_0, root_1); 2156 } 2157 2158 } 2159 2160 2161 retval.tree = root_0; 2162 2163 } 2164 break; 2165 2166 } 2167 2168 2169 if (statements_and_directives_stack.peek().hasRegistersDirective) { 2170 throw new SemanticException(input, directive, "There can only be a single .registers or .locals directive in a method"); 2171 } 2172 statements_and_directives_stack.peek().hasRegistersDirective =true; 2173 2174 } 2175 2176 retval.stop = input.LT(-1); 2177 2178 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 2179 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 2180 2181 } 2182 catch (RecognitionException re) { 2183 reportError(re); 2184 recover(input,re); 2185 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 2186 } 2187 finally { 2188 // do for sure before leaving 2189 } 2190 return retval; 2191 } 2192 // $ANTLR end "registers_directive" 2193 2194 2195 public static class param_list_or_id_return extends ParserRuleReturnScope { 2196 CommonTree tree; 2197 @Override 2198 public CommonTree getTree() { return tree; } 2199 }; 2200 2201 2202 // $ANTLR start "param_list_or_id" 2203 // smaliParser.g:532:1: param_list_or_id : ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE )+ ; 2204 public final smaliParser.param_list_or_id_return param_list_or_id() throws RecognitionException { 2205 smaliParser.param_list_or_id_return retval = new smaliParser.param_list_or_id_return(); 2206 retval.start = input.LT(1); 2207 2208 CommonTree root_0 = null; 2209 2210 Token PARAM_LIST_OR_ID_PRIMITIVE_TYPE43=null; 2211 2212 CommonTree PARAM_LIST_OR_ID_PRIMITIVE_TYPE43_tree=null; 2213 2214 try { 2215 // smaliParser.g:533:3: ( ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE )+ ) 2216 // smaliParser.g:533:5: ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE )+ 2217 { 2218 root_0 = (CommonTree)adaptor.nil(); 2219 2220 2221 // smaliParser.g:533:5: ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE )+ 2222 int cnt9=0; 2223 loop9: 2224 while (true) { 2225 int alt9=2; 2226 int LA9_0 = input.LA(1); 2227 if ( (LA9_0==PARAM_LIST_OR_ID_PRIMITIVE_TYPE) ) { 2228 alt9=1; 2229 } 2230 2231 switch (alt9) { 2232 case 1 : 2233 // smaliParser.g:533:5: PARAM_LIST_OR_ID_PRIMITIVE_TYPE 2234 { 2235 PARAM_LIST_OR_ID_PRIMITIVE_TYPE43=(Token)match(input,PARAM_LIST_OR_ID_PRIMITIVE_TYPE,FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id1764); 2236 PARAM_LIST_OR_ID_PRIMITIVE_TYPE43_tree = (CommonTree)adaptor.create(PARAM_LIST_OR_ID_PRIMITIVE_TYPE43); 2237 adaptor.addChild(root_0, PARAM_LIST_OR_ID_PRIMITIVE_TYPE43_tree); 2238 2239 } 2240 break; 2241 2242 default : 2243 if ( cnt9 >= 1 ) break loop9; 2244 EarlyExitException eee = new EarlyExitException(9, input); 2245 throw eee; 2246 } 2247 cnt9++; 2248 } 2249 2250 } 2251 2252 retval.stop = input.LT(-1); 2253 2254 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 2255 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 2256 2257 } 2258 catch (RecognitionException re) { 2259 reportError(re); 2260 recover(input,re); 2261 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 2262 } 2263 finally { 2264 // do for sure before leaving 2265 } 2266 return retval; 2267 } 2268 // $ANTLR end "param_list_or_id" 2269 2270 2271 public static class simple_name_return extends ParserRuleReturnScope { 2272 CommonTree tree; 2273 @Override 2274 public CommonTree getTree() { return tree; } 2275 }; 2276 2277 2278 // $ANTLR start "simple_name" 2279 // smaliParser.g:537:1: simple_name : ( SIMPLE_NAME | ACCESS_SPEC -> SIMPLE_NAME[$ACCESS_SPEC] | VERIFICATION_ERROR_TYPE -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE] | POSITIVE_INTEGER_LITERAL -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL] | FLOAT_LITERAL_OR_ID -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID] | DOUBLE_LITERAL_OR_ID -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID] | BOOL_LITERAL -> SIMPLE_NAME[$BOOL_LITERAL] | NULL_LITERAL -> SIMPLE_NAME[$NULL_LITERAL] | REGISTER -> SIMPLE_NAME[$REGISTER] | param_list_or_id ->| PRIMITIVE_TYPE -> SIMPLE_NAME[$PRIMITIVE_TYPE] | VOID_TYPE -> SIMPLE_NAME[$VOID_TYPE] | ANNOTATION_VISIBILITY -> SIMPLE_NAME[$ANNOTATION_VISIBILITY] | INSTRUCTION_FORMAT10t -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t] | INSTRUCTION_FORMAT10x -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x] | INSTRUCTION_FORMAT10x_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x_ODEX] | INSTRUCTION_FORMAT11x -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x] | INSTRUCTION_FORMAT12x_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID] | INSTRUCTION_FORMAT21c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD] | INSTRUCTION_FORMAT21c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD_ODEX] | INSTRUCTION_FORMAT21c_STRING -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING] | INSTRUCTION_FORMAT21c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE] | INSTRUCTION_FORMAT21t -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t] | INSTRUCTION_FORMAT22c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD] | INSTRUCTION_FORMAT22c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD_ODEX] | INSTRUCTION_FORMAT22c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE] | INSTRUCTION_FORMAT22cs_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD] | INSTRUCTION_FORMAT22s_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID] | INSTRUCTION_FORMAT22t -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t] | INSTRUCTION_FORMAT23x -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x] | INSTRUCTION_FORMAT31i_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID] | INSTRUCTION_FORMAT31t -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t] | INSTRUCTION_FORMAT35c_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD] | INSTRUCTION_FORMAT35c_METHOD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD_ODEX] | INSTRUCTION_FORMAT35c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] | INSTRUCTION_FORMAT35mi_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35mi_METHOD] | INSTRUCTION_FORMAT35ms_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] | INSTRUCTION_FORMAT45cc_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT45cc_METHOD] | INSTRUCTION_FORMAT4rcc_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT4rcc_METHOD] | INSTRUCTION_FORMAT51l -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] ); 2280 public final smaliParser.simple_name_return simple_name() throws RecognitionException { 2281 smaliParser.simple_name_return retval = new smaliParser.simple_name_return(); 2282 retval.start = input.LT(1); 2283 2284 CommonTree root_0 = null; 2285 2286 Token SIMPLE_NAME44=null; 2287 Token ACCESS_SPEC45=null; 2288 Token VERIFICATION_ERROR_TYPE46=null; 2289 Token POSITIVE_INTEGER_LITERAL47=null; 2290 Token NEGATIVE_INTEGER_LITERAL48=null; 2291 Token FLOAT_LITERAL_OR_ID49=null; 2292 Token DOUBLE_LITERAL_OR_ID50=null; 2293 Token BOOL_LITERAL51=null; 2294 Token NULL_LITERAL52=null; 2295 Token REGISTER53=null; 2296 Token PRIMITIVE_TYPE55=null; 2297 Token VOID_TYPE56=null; 2298 Token ANNOTATION_VISIBILITY57=null; 2299 Token INSTRUCTION_FORMAT10t58=null; 2300 Token INSTRUCTION_FORMAT10x59=null; 2301 Token INSTRUCTION_FORMAT10x_ODEX60=null; 2302 Token INSTRUCTION_FORMAT11x61=null; 2303 Token INSTRUCTION_FORMAT12x_OR_ID62=null; 2304 Token INSTRUCTION_FORMAT21c_FIELD63=null; 2305 Token INSTRUCTION_FORMAT21c_FIELD_ODEX64=null; 2306 Token INSTRUCTION_FORMAT21c_STRING65=null; 2307 Token INSTRUCTION_FORMAT21c_TYPE66=null; 2308 Token INSTRUCTION_FORMAT21t67=null; 2309 Token INSTRUCTION_FORMAT22c_FIELD68=null; 2310 Token INSTRUCTION_FORMAT22c_FIELD_ODEX69=null; 2311 Token INSTRUCTION_FORMAT22c_TYPE70=null; 2312 Token INSTRUCTION_FORMAT22cs_FIELD71=null; 2313 Token INSTRUCTION_FORMAT22s_OR_ID72=null; 2314 Token INSTRUCTION_FORMAT22t73=null; 2315 Token INSTRUCTION_FORMAT23x74=null; 2316 Token INSTRUCTION_FORMAT31i_OR_ID75=null; 2317 Token INSTRUCTION_FORMAT31t76=null; 2318 Token INSTRUCTION_FORMAT35c_METHOD77=null; 2319 Token INSTRUCTION_FORMAT35c_METHOD_ODEX78=null; 2320 Token INSTRUCTION_FORMAT35c_TYPE79=null; 2321 Token INSTRUCTION_FORMAT35mi_METHOD80=null; 2322 Token INSTRUCTION_FORMAT35ms_METHOD81=null; 2323 Token INSTRUCTION_FORMAT45cc_METHOD82=null; 2324 Token INSTRUCTION_FORMAT4rcc_METHOD83=null; 2325 Token INSTRUCTION_FORMAT51l84=null; 2326 ParserRuleReturnScope param_list_or_id54 =null; 2327 2328 CommonTree SIMPLE_NAME44_tree=null; 2329 CommonTree ACCESS_SPEC45_tree=null; 2330 CommonTree VERIFICATION_ERROR_TYPE46_tree=null; 2331 CommonTree POSITIVE_INTEGER_LITERAL47_tree=null; 2332 CommonTree NEGATIVE_INTEGER_LITERAL48_tree=null; 2333 CommonTree FLOAT_LITERAL_OR_ID49_tree=null; 2334 CommonTree DOUBLE_LITERAL_OR_ID50_tree=null; 2335 CommonTree BOOL_LITERAL51_tree=null; 2336 CommonTree NULL_LITERAL52_tree=null; 2337 CommonTree REGISTER53_tree=null; 2338 CommonTree PRIMITIVE_TYPE55_tree=null; 2339 CommonTree VOID_TYPE56_tree=null; 2340 CommonTree ANNOTATION_VISIBILITY57_tree=null; 2341 CommonTree INSTRUCTION_FORMAT10t58_tree=null; 2342 CommonTree INSTRUCTION_FORMAT10x59_tree=null; 2343 CommonTree INSTRUCTION_FORMAT10x_ODEX60_tree=null; 2344 CommonTree INSTRUCTION_FORMAT11x61_tree=null; 2345 CommonTree INSTRUCTION_FORMAT12x_OR_ID62_tree=null; 2346 CommonTree INSTRUCTION_FORMAT21c_FIELD63_tree=null; 2347 CommonTree INSTRUCTION_FORMAT21c_FIELD_ODEX64_tree=null; 2348 CommonTree INSTRUCTION_FORMAT21c_STRING65_tree=null; 2349 CommonTree INSTRUCTION_FORMAT21c_TYPE66_tree=null; 2350 CommonTree INSTRUCTION_FORMAT21t67_tree=null; 2351 CommonTree INSTRUCTION_FORMAT22c_FIELD68_tree=null; 2352 CommonTree INSTRUCTION_FORMAT22c_FIELD_ODEX69_tree=null; 2353 CommonTree INSTRUCTION_FORMAT22c_TYPE70_tree=null; 2354 CommonTree INSTRUCTION_FORMAT22cs_FIELD71_tree=null; 2355 CommonTree INSTRUCTION_FORMAT22s_OR_ID72_tree=null; 2356 CommonTree INSTRUCTION_FORMAT22t73_tree=null; 2357 CommonTree INSTRUCTION_FORMAT23x74_tree=null; 2358 CommonTree INSTRUCTION_FORMAT31i_OR_ID75_tree=null; 2359 CommonTree INSTRUCTION_FORMAT31t76_tree=null; 2360 CommonTree INSTRUCTION_FORMAT35c_METHOD77_tree=null; 2361 CommonTree INSTRUCTION_FORMAT35c_METHOD_ODEX78_tree=null; 2362 CommonTree INSTRUCTION_FORMAT35c_TYPE79_tree=null; 2363 CommonTree INSTRUCTION_FORMAT35mi_METHOD80_tree=null; 2364 CommonTree INSTRUCTION_FORMAT35ms_METHOD81_tree=null; 2365 CommonTree INSTRUCTION_FORMAT45cc_METHOD82_tree=null; 2366 CommonTree INSTRUCTION_FORMAT4rcc_METHOD83_tree=null; 2367 CommonTree INSTRUCTION_FORMAT51l84_tree=null; 2368 RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_VISIBILITY"); 2369 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_TYPE"); 2370 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22t"); 2371 RewriteRuleTokenStream stream_VOID_TYPE=new RewriteRuleTokenStream(adaptor,"token VOID_TYPE"); 2372 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10t"); 2373 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35mi_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35mi_METHOD"); 2374 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22s_OR_ID"); 2375 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22cs_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22cs_FIELD"); 2376 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT12x_OR_ID"); 2377 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35ms_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35ms_METHOD"); 2378 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD"); 2379 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT45cc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT45cc_METHOD"); 2380 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_TYPE"); 2381 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x"); 2382 RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token FLOAT_LITERAL_OR_ID"); 2383 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_TYPE"); 2384 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_STRING"); 2385 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD_ODEX"); 2386 RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token NEGATIVE_INTEGER_LITERAL"); 2387 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 2388 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD_ODEX"); 2389 RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token DOUBLE_LITERAL_OR_ID"); 2390 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31i_OR_ID"); 2391 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21t"); 2392 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31t"); 2393 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT23x"); 2394 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT51l"); 2395 RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token POSITIVE_INTEGER_LITERAL"); 2396 RewriteRuleTokenStream stream_BOOL_LITERAL=new RewriteRuleTokenStream(adaptor,"token BOOL_LITERAL"); 2397 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x_ODEX"); 2398 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD"); 2399 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD"); 2400 RewriteRuleTokenStream stream_VERIFICATION_ERROR_TYPE=new RewriteRuleTokenStream(adaptor,"token VERIFICATION_ERROR_TYPE"); 2401 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11x"); 2402 RewriteRuleTokenStream stream_ACCESS_SPEC=new RewriteRuleTokenStream(adaptor,"token ACCESS_SPEC"); 2403 RewriteRuleTokenStream stream_NULL_LITERAL=new RewriteRuleTokenStream(adaptor,"token NULL_LITERAL"); 2404 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT4rcc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT4rcc_METHOD"); 2405 RewriteRuleTokenStream stream_PRIMITIVE_TYPE=new RewriteRuleTokenStream(adaptor,"token PRIMITIVE_TYPE"); 2406 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD_ODEX"); 2407 RewriteRuleSubtreeStream stream_param_list_or_id=new RewriteRuleSubtreeStream(adaptor,"rule param_list_or_id"); 2408 2409 try { 2410 // smaliParser.g:538:3: ( SIMPLE_NAME | ACCESS_SPEC -> SIMPLE_NAME[$ACCESS_SPEC] | VERIFICATION_ERROR_TYPE -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE] | POSITIVE_INTEGER_LITERAL -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL] | FLOAT_LITERAL_OR_ID -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID] | DOUBLE_LITERAL_OR_ID -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID] | BOOL_LITERAL -> SIMPLE_NAME[$BOOL_LITERAL] | NULL_LITERAL -> SIMPLE_NAME[$NULL_LITERAL] | REGISTER -> SIMPLE_NAME[$REGISTER] | param_list_or_id ->| PRIMITIVE_TYPE -> SIMPLE_NAME[$PRIMITIVE_TYPE] | VOID_TYPE -> SIMPLE_NAME[$VOID_TYPE] | ANNOTATION_VISIBILITY -> SIMPLE_NAME[$ANNOTATION_VISIBILITY] | INSTRUCTION_FORMAT10t -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t] | INSTRUCTION_FORMAT10x -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x] | INSTRUCTION_FORMAT10x_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x_ODEX] | INSTRUCTION_FORMAT11x -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x] | INSTRUCTION_FORMAT12x_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID] | INSTRUCTION_FORMAT21c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD] | INSTRUCTION_FORMAT21c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD_ODEX] | INSTRUCTION_FORMAT21c_STRING -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING] | INSTRUCTION_FORMAT21c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE] | INSTRUCTION_FORMAT21t -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t] | INSTRUCTION_FORMAT22c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD] | INSTRUCTION_FORMAT22c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD_ODEX] | INSTRUCTION_FORMAT22c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE] | INSTRUCTION_FORMAT22cs_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD] | INSTRUCTION_FORMAT22s_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID] | INSTRUCTION_FORMAT22t -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t] | INSTRUCTION_FORMAT23x -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x] | INSTRUCTION_FORMAT31i_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID] | INSTRUCTION_FORMAT31t -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t] | INSTRUCTION_FORMAT35c_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD] | INSTRUCTION_FORMAT35c_METHOD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD_ODEX] | INSTRUCTION_FORMAT35c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] | INSTRUCTION_FORMAT35mi_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35mi_METHOD] | INSTRUCTION_FORMAT35ms_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] | INSTRUCTION_FORMAT45cc_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT45cc_METHOD] | INSTRUCTION_FORMAT4rcc_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT4rcc_METHOD] | INSTRUCTION_FORMAT51l -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] ) 2411 int alt10=41; 2412 switch ( input.LA(1) ) { 2413 case SIMPLE_NAME: 2414 { 2415 alt10=1; 2416 } 2417 break; 2418 case ACCESS_SPEC: 2419 { 2420 alt10=2; 2421 } 2422 break; 2423 case VERIFICATION_ERROR_TYPE: 2424 { 2425 alt10=3; 2426 } 2427 break; 2428 case POSITIVE_INTEGER_LITERAL: 2429 { 2430 alt10=4; 2431 } 2432 break; 2433 case NEGATIVE_INTEGER_LITERAL: 2434 { 2435 alt10=5; 2436 } 2437 break; 2438 case FLOAT_LITERAL_OR_ID: 2439 { 2440 alt10=6; 2441 } 2442 break; 2443 case DOUBLE_LITERAL_OR_ID: 2444 { 2445 alt10=7; 2446 } 2447 break; 2448 case BOOL_LITERAL: 2449 { 2450 alt10=8; 2451 } 2452 break; 2453 case NULL_LITERAL: 2454 { 2455 alt10=9; 2456 } 2457 break; 2458 case REGISTER: 2459 { 2460 alt10=10; 2461 } 2462 break; 2463 case PARAM_LIST_OR_ID_PRIMITIVE_TYPE: 2464 { 2465 alt10=11; 2466 } 2467 break; 2468 case PRIMITIVE_TYPE: 2469 { 2470 alt10=12; 2471 } 2472 break; 2473 case VOID_TYPE: 2474 { 2475 alt10=13; 2476 } 2477 break; 2478 case ANNOTATION_VISIBILITY: 2479 { 2480 alt10=14; 2481 } 2482 break; 2483 case INSTRUCTION_FORMAT10t: 2484 { 2485 alt10=15; 2486 } 2487 break; 2488 case INSTRUCTION_FORMAT10x: 2489 { 2490 alt10=16; 2491 } 2492 break; 2493 case INSTRUCTION_FORMAT10x_ODEX: 2494 { 2495 alt10=17; 2496 } 2497 break; 2498 case INSTRUCTION_FORMAT11x: 2499 { 2500 alt10=18; 2501 } 2502 break; 2503 case INSTRUCTION_FORMAT12x_OR_ID: 2504 { 2505 alt10=19; 2506 } 2507 break; 2508 case INSTRUCTION_FORMAT21c_FIELD: 2509 { 2510 alt10=20; 2511 } 2512 break; 2513 case INSTRUCTION_FORMAT21c_FIELD_ODEX: 2514 { 2515 alt10=21; 2516 } 2517 break; 2518 case INSTRUCTION_FORMAT21c_STRING: 2519 { 2520 alt10=22; 2521 } 2522 break; 2523 case INSTRUCTION_FORMAT21c_TYPE: 2524 { 2525 alt10=23; 2526 } 2527 break; 2528 case INSTRUCTION_FORMAT21t: 2529 { 2530 alt10=24; 2531 } 2532 break; 2533 case INSTRUCTION_FORMAT22c_FIELD: 2534 { 2535 alt10=25; 2536 } 2537 break; 2538 case INSTRUCTION_FORMAT22c_FIELD_ODEX: 2539 { 2540 alt10=26; 2541 } 2542 break; 2543 case INSTRUCTION_FORMAT22c_TYPE: 2544 { 2545 alt10=27; 2546 } 2547 break; 2548 case INSTRUCTION_FORMAT22cs_FIELD: 2549 { 2550 alt10=28; 2551 } 2552 break; 2553 case INSTRUCTION_FORMAT22s_OR_ID: 2554 { 2555 alt10=29; 2556 } 2557 break; 2558 case INSTRUCTION_FORMAT22t: 2559 { 2560 alt10=30; 2561 } 2562 break; 2563 case INSTRUCTION_FORMAT23x: 2564 { 2565 alt10=31; 2566 } 2567 break; 2568 case INSTRUCTION_FORMAT31i_OR_ID: 2569 { 2570 alt10=32; 2571 } 2572 break; 2573 case INSTRUCTION_FORMAT31t: 2574 { 2575 alt10=33; 2576 } 2577 break; 2578 case INSTRUCTION_FORMAT35c_METHOD: 2579 { 2580 alt10=34; 2581 } 2582 break; 2583 case INSTRUCTION_FORMAT35c_METHOD_ODEX: 2584 { 2585 alt10=35; 2586 } 2587 break; 2588 case INSTRUCTION_FORMAT35c_TYPE: 2589 { 2590 alt10=36; 2591 } 2592 break; 2593 case INSTRUCTION_FORMAT35mi_METHOD: 2594 { 2595 alt10=37; 2596 } 2597 break; 2598 case INSTRUCTION_FORMAT35ms_METHOD: 2599 { 2600 alt10=38; 2601 } 2602 break; 2603 case INSTRUCTION_FORMAT45cc_METHOD: 2604 { 2605 alt10=39; 2606 } 2607 break; 2608 case INSTRUCTION_FORMAT4rcc_METHOD: 2609 { 2610 alt10=40; 2611 } 2612 break; 2613 case INSTRUCTION_FORMAT51l: 2614 { 2615 alt10=41; 2616 } 2617 break; 2618 default: 2619 NoViableAltException nvae = 2620 new NoViableAltException("", 10, 0, input); 2621 throw nvae; 2622 } 2623 switch (alt10) { 2624 case 1 : 2625 // smaliParser.g:538:5: SIMPLE_NAME 2626 { 2627 root_0 = (CommonTree)adaptor.nil(); 2628 2629 2630 SIMPLE_NAME44=(Token)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_simple_name1777); 2631 SIMPLE_NAME44_tree = (CommonTree)adaptor.create(SIMPLE_NAME44); 2632 adaptor.addChild(root_0, SIMPLE_NAME44_tree); 2633 2634 } 2635 break; 2636 case 2 : 2637 // smaliParser.g:539:5: ACCESS_SPEC 2638 { 2639 ACCESS_SPEC45=(Token)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_simple_name1783); 2640 stream_ACCESS_SPEC.add(ACCESS_SPEC45); 2641 2642 // AST REWRITE 2643 // elements: 2644 // token labels: 2645 // rule labels: retval 2646 // token list labels: 2647 // rule list labels: 2648 // wildcard labels: 2649 retval.tree = root_0; 2650 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2651 2652 root_0 = (CommonTree)adaptor.nil(); 2653 // 539:17: -> SIMPLE_NAME[$ACCESS_SPEC] 2654 { 2655 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, ACCESS_SPEC45)); 2656 } 2657 2658 2659 retval.tree = root_0; 2660 2661 } 2662 break; 2663 case 3 : 2664 // smaliParser.g:540:5: VERIFICATION_ERROR_TYPE 2665 { 2666 VERIFICATION_ERROR_TYPE46=(Token)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_simple_name1794); 2667 stream_VERIFICATION_ERROR_TYPE.add(VERIFICATION_ERROR_TYPE46); 2668 2669 // AST REWRITE 2670 // elements: 2671 // token labels: 2672 // rule labels: retval 2673 // token list labels: 2674 // rule list labels: 2675 // wildcard labels: 2676 retval.tree = root_0; 2677 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2678 2679 root_0 = (CommonTree)adaptor.nil(); 2680 // 540:29: -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE] 2681 { 2682 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, VERIFICATION_ERROR_TYPE46)); 2683 } 2684 2685 2686 retval.tree = root_0; 2687 2688 } 2689 break; 2690 case 4 : 2691 // smaliParser.g:541:5: POSITIVE_INTEGER_LITERAL 2692 { 2693 POSITIVE_INTEGER_LITERAL47=(Token)match(input,POSITIVE_INTEGER_LITERAL,FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1805); 2694 stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL47); 2695 2696 // AST REWRITE 2697 // elements: 2698 // token labels: 2699 // rule labels: retval 2700 // token list labels: 2701 // rule list labels: 2702 // wildcard labels: 2703 retval.tree = root_0; 2704 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2705 2706 root_0 = (CommonTree)adaptor.nil(); 2707 // 541:30: -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL] 2708 { 2709 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, POSITIVE_INTEGER_LITERAL47)); 2710 } 2711 2712 2713 retval.tree = root_0; 2714 2715 } 2716 break; 2717 case 5 : 2718 // smaliParser.g:542:5: NEGATIVE_INTEGER_LITERAL 2719 { 2720 NEGATIVE_INTEGER_LITERAL48=(Token)match(input,NEGATIVE_INTEGER_LITERAL,FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1816); 2721 stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL48); 2722 2723 // AST REWRITE 2724 // elements: 2725 // token labels: 2726 // rule labels: retval 2727 // token list labels: 2728 // rule list labels: 2729 // wildcard labels: 2730 retval.tree = root_0; 2731 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2732 2733 root_0 = (CommonTree)adaptor.nil(); 2734 // 542:30: -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL] 2735 { 2736 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, NEGATIVE_INTEGER_LITERAL48)); 2737 } 2738 2739 2740 retval.tree = root_0; 2741 2742 } 2743 break; 2744 case 6 : 2745 // smaliParser.g:543:5: FLOAT_LITERAL_OR_ID 2746 { 2747 FLOAT_LITERAL_OR_ID49=(Token)match(input,FLOAT_LITERAL_OR_ID,FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1827); 2748 stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID49); 2749 2750 // AST REWRITE 2751 // elements: 2752 // token labels: 2753 // rule labels: retval 2754 // token list labels: 2755 // rule list labels: 2756 // wildcard labels: 2757 retval.tree = root_0; 2758 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2759 2760 root_0 = (CommonTree)adaptor.nil(); 2761 // 543:25: -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID] 2762 { 2763 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, FLOAT_LITERAL_OR_ID49)); 2764 } 2765 2766 2767 retval.tree = root_0; 2768 2769 } 2770 break; 2771 case 7 : 2772 // smaliParser.g:544:5: DOUBLE_LITERAL_OR_ID 2773 { 2774 DOUBLE_LITERAL_OR_ID50=(Token)match(input,DOUBLE_LITERAL_OR_ID,FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1838); 2775 stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID50); 2776 2777 // AST REWRITE 2778 // elements: 2779 // token labels: 2780 // rule labels: retval 2781 // token list labels: 2782 // rule list labels: 2783 // wildcard labels: 2784 retval.tree = root_0; 2785 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2786 2787 root_0 = (CommonTree)adaptor.nil(); 2788 // 544:26: -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID] 2789 { 2790 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, DOUBLE_LITERAL_OR_ID50)); 2791 } 2792 2793 2794 retval.tree = root_0; 2795 2796 } 2797 break; 2798 case 8 : 2799 // smaliParser.g:545:5: BOOL_LITERAL 2800 { 2801 BOOL_LITERAL51=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_simple_name1849); 2802 stream_BOOL_LITERAL.add(BOOL_LITERAL51); 2803 2804 // AST REWRITE 2805 // elements: 2806 // token labels: 2807 // rule labels: retval 2808 // token list labels: 2809 // rule list labels: 2810 // wildcard labels: 2811 retval.tree = root_0; 2812 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2813 2814 root_0 = (CommonTree)adaptor.nil(); 2815 // 545:18: -> SIMPLE_NAME[$BOOL_LITERAL] 2816 { 2817 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, BOOL_LITERAL51)); 2818 } 2819 2820 2821 retval.tree = root_0; 2822 2823 } 2824 break; 2825 case 9 : 2826 // smaliParser.g:546:5: NULL_LITERAL 2827 { 2828 NULL_LITERAL52=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_simple_name1860); 2829 stream_NULL_LITERAL.add(NULL_LITERAL52); 2830 2831 // AST REWRITE 2832 // elements: 2833 // token labels: 2834 // rule labels: retval 2835 // token list labels: 2836 // rule list labels: 2837 // wildcard labels: 2838 retval.tree = root_0; 2839 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2840 2841 root_0 = (CommonTree)adaptor.nil(); 2842 // 546:18: -> SIMPLE_NAME[$NULL_LITERAL] 2843 { 2844 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, NULL_LITERAL52)); 2845 } 2846 2847 2848 retval.tree = root_0; 2849 2850 } 2851 break; 2852 case 10 : 2853 // smaliParser.g:547:5: REGISTER 2854 { 2855 REGISTER53=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_simple_name1871); 2856 stream_REGISTER.add(REGISTER53); 2857 2858 // AST REWRITE 2859 // elements: 2860 // token labels: 2861 // rule labels: retval 2862 // token list labels: 2863 // rule list labels: 2864 // wildcard labels: 2865 retval.tree = root_0; 2866 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2867 2868 root_0 = (CommonTree)adaptor.nil(); 2869 // 547:14: -> SIMPLE_NAME[$REGISTER] 2870 { 2871 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, REGISTER53)); 2872 } 2873 2874 2875 retval.tree = root_0; 2876 2877 } 2878 break; 2879 case 11 : 2880 // smaliParser.g:548:5: param_list_or_id 2881 { 2882 pushFollow(FOLLOW_param_list_or_id_in_simple_name1882); 2883 param_list_or_id54=param_list_or_id(); 2884 state._fsp--; 2885 2886 stream_param_list_or_id.add(param_list_or_id54.getTree()); 2887 // AST REWRITE 2888 // elements: 2889 // token labels: 2890 // rule labels: retval 2891 // token list labels: 2892 // rule list labels: 2893 // wildcard labels: 2894 retval.tree = root_0; 2895 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2896 2897 root_0 = (CommonTree)adaptor.nil(); 2898 // 548:22: -> 2899 { 2900 adaptor.addChild(root_0, adaptor.create(SIMPLE_NAME, (param_list_or_id54!=null?input.toString(param_list_or_id54.start,param_list_or_id54.stop):null)) ); 2901 } 2902 2903 2904 retval.tree = root_0; 2905 2906 } 2907 break; 2908 case 12 : 2909 // smaliParser.g:549:5: PRIMITIVE_TYPE 2910 { 2911 PRIMITIVE_TYPE55=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_simple_name1892); 2912 stream_PRIMITIVE_TYPE.add(PRIMITIVE_TYPE55); 2913 2914 // AST REWRITE 2915 // elements: 2916 // token labels: 2917 // rule labels: retval 2918 // token list labels: 2919 // rule list labels: 2920 // wildcard labels: 2921 retval.tree = root_0; 2922 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2923 2924 root_0 = (CommonTree)adaptor.nil(); 2925 // 549:20: -> SIMPLE_NAME[$PRIMITIVE_TYPE] 2926 { 2927 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, PRIMITIVE_TYPE55)); 2928 } 2929 2930 2931 retval.tree = root_0; 2932 2933 } 2934 break; 2935 case 13 : 2936 // smaliParser.g:550:5: VOID_TYPE 2937 { 2938 VOID_TYPE56=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_simple_name1903); 2939 stream_VOID_TYPE.add(VOID_TYPE56); 2940 2941 // AST REWRITE 2942 // elements: 2943 // token labels: 2944 // rule labels: retval 2945 // token list labels: 2946 // rule list labels: 2947 // wildcard labels: 2948 retval.tree = root_0; 2949 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2950 2951 root_0 = (CommonTree)adaptor.nil(); 2952 // 550:15: -> SIMPLE_NAME[$VOID_TYPE] 2953 { 2954 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, VOID_TYPE56)); 2955 } 2956 2957 2958 retval.tree = root_0; 2959 2960 } 2961 break; 2962 case 14 : 2963 // smaliParser.g:551:5: ANNOTATION_VISIBILITY 2964 { 2965 ANNOTATION_VISIBILITY57=(Token)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_simple_name1914); 2966 stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY57); 2967 2968 // AST REWRITE 2969 // elements: 2970 // token labels: 2971 // rule labels: retval 2972 // token list labels: 2973 // rule list labels: 2974 // wildcard labels: 2975 retval.tree = root_0; 2976 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 2977 2978 root_0 = (CommonTree)adaptor.nil(); 2979 // 551:27: -> SIMPLE_NAME[$ANNOTATION_VISIBILITY] 2980 { 2981 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, ANNOTATION_VISIBILITY57)); 2982 } 2983 2984 2985 retval.tree = root_0; 2986 2987 } 2988 break; 2989 case 15 : 2990 // smaliParser.g:552:5: INSTRUCTION_FORMAT10t 2991 { 2992 INSTRUCTION_FORMAT10t58=(Token)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name1925); 2993 stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t58); 2994 2995 // AST REWRITE 2996 // elements: 2997 // token labels: 2998 // rule labels: retval 2999 // token list labels: 3000 // rule list labels: 3001 // wildcard labels: 3002 retval.tree = root_0; 3003 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3004 3005 root_0 = (CommonTree)adaptor.nil(); 3006 // 552:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t] 3007 { 3008 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10t58)); 3009 } 3010 3011 3012 retval.tree = root_0; 3013 3014 } 3015 break; 3016 case 16 : 3017 // smaliParser.g:553:5: INSTRUCTION_FORMAT10x 3018 { 3019 INSTRUCTION_FORMAT10x59=(Token)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name1936); 3020 stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x59); 3021 3022 // AST REWRITE 3023 // elements: 3024 // token labels: 3025 // rule labels: retval 3026 // token list labels: 3027 // rule list labels: 3028 // wildcard labels: 3029 retval.tree = root_0; 3030 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3031 3032 root_0 = (CommonTree)adaptor.nil(); 3033 // 553:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x] 3034 { 3035 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10x59)); 3036 } 3037 3038 3039 retval.tree = root_0; 3040 3041 } 3042 break; 3043 case 17 : 3044 // smaliParser.g:554:5: INSTRUCTION_FORMAT10x_ODEX 3045 { 3046 INSTRUCTION_FORMAT10x_ODEX60=(Token)match(input,INSTRUCTION_FORMAT10x_ODEX,FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_simple_name1947); 3047 stream_INSTRUCTION_FORMAT10x_ODEX.add(INSTRUCTION_FORMAT10x_ODEX60); 3048 3049 // AST REWRITE 3050 // elements: 3051 // token labels: 3052 // rule labels: retval 3053 // token list labels: 3054 // rule list labels: 3055 // wildcard labels: 3056 retval.tree = root_0; 3057 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3058 3059 root_0 = (CommonTree)adaptor.nil(); 3060 // 554:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x_ODEX] 3061 { 3062 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10x_ODEX60)); 3063 } 3064 3065 3066 retval.tree = root_0; 3067 3068 } 3069 break; 3070 case 18 : 3071 // smaliParser.g:555:5: INSTRUCTION_FORMAT11x 3072 { 3073 INSTRUCTION_FORMAT11x61=(Token)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name1958); 3074 stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x61); 3075 3076 // AST REWRITE 3077 // elements: 3078 // token labels: 3079 // rule labels: retval 3080 // token list labels: 3081 // rule list labels: 3082 // wildcard labels: 3083 retval.tree = root_0; 3084 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3085 3086 root_0 = (CommonTree)adaptor.nil(); 3087 // 555:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x] 3088 { 3089 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT11x61)); 3090 } 3091 3092 3093 retval.tree = root_0; 3094 3095 } 3096 break; 3097 case 19 : 3098 // smaliParser.g:556:5: INSTRUCTION_FORMAT12x_OR_ID 3099 { 3100 INSTRUCTION_FORMAT12x_OR_ID62=(Token)match(input,INSTRUCTION_FORMAT12x_OR_ID,FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name1969); 3101 stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID62); 3102 3103 // AST REWRITE 3104 // elements: 3105 // token labels: 3106 // rule labels: retval 3107 // token list labels: 3108 // rule list labels: 3109 // wildcard labels: 3110 retval.tree = root_0; 3111 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3112 3113 root_0 = (CommonTree)adaptor.nil(); 3114 // 556:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID] 3115 { 3116 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT12x_OR_ID62)); 3117 } 3118 3119 3120 retval.tree = root_0; 3121 3122 } 3123 break; 3124 case 20 : 3125 // smaliParser.g:557:5: INSTRUCTION_FORMAT21c_FIELD 3126 { 3127 INSTRUCTION_FORMAT21c_FIELD63=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name1980); 3128 stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD63); 3129 3130 // AST REWRITE 3131 // elements: 3132 // token labels: 3133 // rule labels: retval 3134 // token list labels: 3135 // rule list labels: 3136 // wildcard labels: 3137 retval.tree = root_0; 3138 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3139 3140 root_0 = (CommonTree)adaptor.nil(); 3141 // 557:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD] 3142 { 3143 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_FIELD63)); 3144 } 3145 3146 3147 retval.tree = root_0; 3148 3149 } 3150 break; 3151 case 21 : 3152 // smaliParser.g:558:5: INSTRUCTION_FORMAT21c_FIELD_ODEX 3153 { 3154 INSTRUCTION_FORMAT21c_FIELD_ODEX64=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_simple_name1991); 3155 stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.add(INSTRUCTION_FORMAT21c_FIELD_ODEX64); 3156 3157 // AST REWRITE 3158 // elements: 3159 // token labels: 3160 // rule labels: retval 3161 // token list labels: 3162 // rule list labels: 3163 // wildcard labels: 3164 retval.tree = root_0; 3165 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3166 3167 root_0 = (CommonTree)adaptor.nil(); 3168 // 558:38: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD_ODEX] 3169 { 3170 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_FIELD_ODEX64)); 3171 } 3172 3173 3174 retval.tree = root_0; 3175 3176 } 3177 break; 3178 case 22 : 3179 // smaliParser.g:559:5: INSTRUCTION_FORMAT21c_STRING 3180 { 3181 INSTRUCTION_FORMAT21c_STRING65=(Token)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name2002); 3182 stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING65); 3183 3184 // AST REWRITE 3185 // elements: 3186 // token labels: 3187 // rule labels: retval 3188 // token list labels: 3189 // rule list labels: 3190 // wildcard labels: 3191 retval.tree = root_0; 3192 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3193 3194 root_0 = (CommonTree)adaptor.nil(); 3195 // 559:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING] 3196 { 3197 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_STRING65)); 3198 } 3199 3200 3201 retval.tree = root_0; 3202 3203 } 3204 break; 3205 case 23 : 3206 // smaliParser.g:560:5: INSTRUCTION_FORMAT21c_TYPE 3207 { 3208 INSTRUCTION_FORMAT21c_TYPE66=(Token)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name2013); 3209 stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE66); 3210 3211 // AST REWRITE 3212 // elements: 3213 // token labels: 3214 // rule labels: retval 3215 // token list labels: 3216 // rule list labels: 3217 // wildcard labels: 3218 retval.tree = root_0; 3219 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3220 3221 root_0 = (CommonTree)adaptor.nil(); 3222 // 560:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE] 3223 { 3224 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_TYPE66)); 3225 } 3226 3227 3228 retval.tree = root_0; 3229 3230 } 3231 break; 3232 case 24 : 3233 // smaliParser.g:561:5: INSTRUCTION_FORMAT21t 3234 { 3235 INSTRUCTION_FORMAT21t67=(Token)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name2024); 3236 stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t67); 3237 3238 // AST REWRITE 3239 // elements: 3240 // token labels: 3241 // rule labels: retval 3242 // token list labels: 3243 // rule list labels: 3244 // wildcard labels: 3245 retval.tree = root_0; 3246 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3247 3248 root_0 = (CommonTree)adaptor.nil(); 3249 // 561:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t] 3250 { 3251 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21t67)); 3252 } 3253 3254 3255 retval.tree = root_0; 3256 3257 } 3258 break; 3259 case 25 : 3260 // smaliParser.g:562:5: INSTRUCTION_FORMAT22c_FIELD 3261 { 3262 INSTRUCTION_FORMAT22c_FIELD68=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name2035); 3263 stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD68); 3264 3265 // AST REWRITE 3266 // elements: 3267 // token labels: 3268 // rule labels: retval 3269 // token list labels: 3270 // rule list labels: 3271 // wildcard labels: 3272 retval.tree = root_0; 3273 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3274 3275 root_0 = (CommonTree)adaptor.nil(); 3276 // 562:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD] 3277 { 3278 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_FIELD68)); 3279 } 3280 3281 3282 retval.tree = root_0; 3283 3284 } 3285 break; 3286 case 26 : 3287 // smaliParser.g:563:5: INSTRUCTION_FORMAT22c_FIELD_ODEX 3288 { 3289 INSTRUCTION_FORMAT22c_FIELD_ODEX69=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_simple_name2046); 3290 stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.add(INSTRUCTION_FORMAT22c_FIELD_ODEX69); 3291 3292 // AST REWRITE 3293 // elements: 3294 // token labels: 3295 // rule labels: retval 3296 // token list labels: 3297 // rule list labels: 3298 // wildcard labels: 3299 retval.tree = root_0; 3300 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3301 3302 root_0 = (CommonTree)adaptor.nil(); 3303 // 563:38: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD_ODEX] 3304 { 3305 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_FIELD_ODEX69)); 3306 } 3307 3308 3309 retval.tree = root_0; 3310 3311 } 3312 break; 3313 case 27 : 3314 // smaliParser.g:564:5: INSTRUCTION_FORMAT22c_TYPE 3315 { 3316 INSTRUCTION_FORMAT22c_TYPE70=(Token)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name2057); 3317 stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE70); 3318 3319 // AST REWRITE 3320 // elements: 3321 // token labels: 3322 // rule labels: retval 3323 // token list labels: 3324 // rule list labels: 3325 // wildcard labels: 3326 retval.tree = root_0; 3327 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3328 3329 root_0 = (CommonTree)adaptor.nil(); 3330 // 564:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE] 3331 { 3332 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_TYPE70)); 3333 } 3334 3335 3336 retval.tree = root_0; 3337 3338 } 3339 break; 3340 case 28 : 3341 // smaliParser.g:565:5: INSTRUCTION_FORMAT22cs_FIELD 3342 { 3343 INSTRUCTION_FORMAT22cs_FIELD71=(Token)match(input,INSTRUCTION_FORMAT22cs_FIELD,FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name2068); 3344 stream_INSTRUCTION_FORMAT22cs_FIELD.add(INSTRUCTION_FORMAT22cs_FIELD71); 3345 3346 // AST REWRITE 3347 // elements: 3348 // token labels: 3349 // rule labels: retval 3350 // token list labels: 3351 // rule list labels: 3352 // wildcard labels: 3353 retval.tree = root_0; 3354 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3355 3356 root_0 = (CommonTree)adaptor.nil(); 3357 // 565:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD] 3358 { 3359 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22cs_FIELD71)); 3360 } 3361 3362 3363 retval.tree = root_0; 3364 3365 } 3366 break; 3367 case 29 : 3368 // smaliParser.g:566:5: INSTRUCTION_FORMAT22s_OR_ID 3369 { 3370 INSTRUCTION_FORMAT22s_OR_ID72=(Token)match(input,INSTRUCTION_FORMAT22s_OR_ID,FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name2079); 3371 stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID72); 3372 3373 // AST REWRITE 3374 // elements: 3375 // token labels: 3376 // rule labels: retval 3377 // token list labels: 3378 // rule list labels: 3379 // wildcard labels: 3380 retval.tree = root_0; 3381 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3382 3383 root_0 = (CommonTree)adaptor.nil(); 3384 // 566:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID] 3385 { 3386 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22s_OR_ID72)); 3387 } 3388 3389 3390 retval.tree = root_0; 3391 3392 } 3393 break; 3394 case 30 : 3395 // smaliParser.g:567:5: INSTRUCTION_FORMAT22t 3396 { 3397 INSTRUCTION_FORMAT22t73=(Token)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name2090); 3398 stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t73); 3399 3400 // AST REWRITE 3401 // elements: 3402 // token labels: 3403 // rule labels: retval 3404 // token list labels: 3405 // rule list labels: 3406 // wildcard labels: 3407 retval.tree = root_0; 3408 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3409 3410 root_0 = (CommonTree)adaptor.nil(); 3411 // 567:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t] 3412 { 3413 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22t73)); 3414 } 3415 3416 3417 retval.tree = root_0; 3418 3419 } 3420 break; 3421 case 31 : 3422 // smaliParser.g:568:5: INSTRUCTION_FORMAT23x 3423 { 3424 INSTRUCTION_FORMAT23x74=(Token)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name2101); 3425 stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x74); 3426 3427 // AST REWRITE 3428 // elements: 3429 // token labels: 3430 // rule labels: retval 3431 // token list labels: 3432 // rule list labels: 3433 // wildcard labels: 3434 retval.tree = root_0; 3435 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3436 3437 root_0 = (CommonTree)adaptor.nil(); 3438 // 568:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x] 3439 { 3440 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT23x74)); 3441 } 3442 3443 3444 retval.tree = root_0; 3445 3446 } 3447 break; 3448 case 32 : 3449 // smaliParser.g:569:5: INSTRUCTION_FORMAT31i_OR_ID 3450 { 3451 INSTRUCTION_FORMAT31i_OR_ID75=(Token)match(input,INSTRUCTION_FORMAT31i_OR_ID,FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name2112); 3452 stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID75); 3453 3454 // AST REWRITE 3455 // elements: 3456 // token labels: 3457 // rule labels: retval 3458 // token list labels: 3459 // rule list labels: 3460 // wildcard labels: 3461 retval.tree = root_0; 3462 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3463 3464 root_0 = (CommonTree)adaptor.nil(); 3465 // 569:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID] 3466 { 3467 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT31i_OR_ID75)); 3468 } 3469 3470 3471 retval.tree = root_0; 3472 3473 } 3474 break; 3475 case 33 : 3476 // smaliParser.g:570:5: INSTRUCTION_FORMAT31t 3477 { 3478 INSTRUCTION_FORMAT31t76=(Token)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name2123); 3479 stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t76); 3480 3481 // AST REWRITE 3482 // elements: 3483 // token labels: 3484 // rule labels: retval 3485 // token list labels: 3486 // rule list labels: 3487 // wildcard labels: 3488 retval.tree = root_0; 3489 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3490 3491 root_0 = (CommonTree)adaptor.nil(); 3492 // 570:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t] 3493 { 3494 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT31t76)); 3495 } 3496 3497 3498 retval.tree = root_0; 3499 3500 } 3501 break; 3502 case 34 : 3503 // smaliParser.g:571:5: INSTRUCTION_FORMAT35c_METHOD 3504 { 3505 INSTRUCTION_FORMAT35c_METHOD77=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name2134); 3506 stream_INSTRUCTION_FORMAT35c_METHOD.add(INSTRUCTION_FORMAT35c_METHOD77); 3507 3508 // AST REWRITE 3509 // elements: 3510 // token labels: 3511 // rule labels: retval 3512 // token list labels: 3513 // rule list labels: 3514 // wildcard labels: 3515 retval.tree = root_0; 3516 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3517 3518 root_0 = (CommonTree)adaptor.nil(); 3519 // 571:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD] 3520 { 3521 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_METHOD77)); 3522 } 3523 3524 3525 retval.tree = root_0; 3526 3527 } 3528 break; 3529 case 35 : 3530 // smaliParser.g:572:5: INSTRUCTION_FORMAT35c_METHOD_ODEX 3531 { 3532 INSTRUCTION_FORMAT35c_METHOD_ODEX78=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD_ODEX,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_simple_name2145); 3533 stream_INSTRUCTION_FORMAT35c_METHOD_ODEX.add(INSTRUCTION_FORMAT35c_METHOD_ODEX78); 3534 3535 // AST REWRITE 3536 // elements: 3537 // token labels: 3538 // rule labels: retval 3539 // token list labels: 3540 // rule list labels: 3541 // wildcard labels: 3542 retval.tree = root_0; 3543 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3544 3545 root_0 = (CommonTree)adaptor.nil(); 3546 // 572:39: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD_ODEX] 3547 { 3548 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_METHOD_ODEX78)); 3549 } 3550 3551 3552 retval.tree = root_0; 3553 3554 } 3555 break; 3556 case 36 : 3557 // smaliParser.g:573:5: INSTRUCTION_FORMAT35c_TYPE 3558 { 3559 INSTRUCTION_FORMAT35c_TYPE79=(Token)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name2156); 3560 stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE79); 3561 3562 // AST REWRITE 3563 // elements: 3564 // token labels: 3565 // rule labels: retval 3566 // token list labels: 3567 // rule list labels: 3568 // wildcard labels: 3569 retval.tree = root_0; 3570 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3571 3572 root_0 = (CommonTree)adaptor.nil(); 3573 // 573:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] 3574 { 3575 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_TYPE79)); 3576 } 3577 3578 3579 retval.tree = root_0; 3580 3581 } 3582 break; 3583 case 37 : 3584 // smaliParser.g:574:5: INSTRUCTION_FORMAT35mi_METHOD 3585 { 3586 INSTRUCTION_FORMAT35mi_METHOD80=(Token)match(input,INSTRUCTION_FORMAT35mi_METHOD,FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_simple_name2167); 3587 stream_INSTRUCTION_FORMAT35mi_METHOD.add(INSTRUCTION_FORMAT35mi_METHOD80); 3588 3589 // AST REWRITE 3590 // elements: 3591 // token labels: 3592 // rule labels: retval 3593 // token list labels: 3594 // rule list labels: 3595 // wildcard labels: 3596 retval.tree = root_0; 3597 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3598 3599 root_0 = (CommonTree)adaptor.nil(); 3600 // 574:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35mi_METHOD] 3601 { 3602 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35mi_METHOD80)); 3603 } 3604 3605 3606 retval.tree = root_0; 3607 3608 } 3609 break; 3610 case 38 : 3611 // smaliParser.g:575:5: INSTRUCTION_FORMAT35ms_METHOD 3612 { 3613 INSTRUCTION_FORMAT35ms_METHOD81=(Token)match(input,INSTRUCTION_FORMAT35ms_METHOD,FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name2178); 3614 stream_INSTRUCTION_FORMAT35ms_METHOD.add(INSTRUCTION_FORMAT35ms_METHOD81); 3615 3616 // AST REWRITE 3617 // elements: 3618 // token labels: 3619 // rule labels: retval 3620 // token list labels: 3621 // rule list labels: 3622 // wildcard labels: 3623 retval.tree = root_0; 3624 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3625 3626 root_0 = (CommonTree)adaptor.nil(); 3627 // 575:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] 3628 { 3629 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35ms_METHOD81)); 3630 } 3631 3632 3633 retval.tree = root_0; 3634 3635 } 3636 break; 3637 case 39 : 3638 // smaliParser.g:576:5: INSTRUCTION_FORMAT45cc_METHOD 3639 { 3640 INSTRUCTION_FORMAT45cc_METHOD82=(Token)match(input,INSTRUCTION_FORMAT45cc_METHOD,FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_simple_name2189); 3641 stream_INSTRUCTION_FORMAT45cc_METHOD.add(INSTRUCTION_FORMAT45cc_METHOD82); 3642 3643 // AST REWRITE 3644 // elements: 3645 // token labels: 3646 // rule labels: retval 3647 // token list labels: 3648 // rule list labels: 3649 // wildcard labels: 3650 retval.tree = root_0; 3651 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3652 3653 root_0 = (CommonTree)adaptor.nil(); 3654 // 576:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT45cc_METHOD] 3655 { 3656 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT45cc_METHOD82)); 3657 } 3658 3659 3660 retval.tree = root_0; 3661 3662 } 3663 break; 3664 case 40 : 3665 // smaliParser.g:577:5: INSTRUCTION_FORMAT4rcc_METHOD 3666 { 3667 INSTRUCTION_FORMAT4rcc_METHOD83=(Token)match(input,INSTRUCTION_FORMAT4rcc_METHOD,FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_simple_name2200); 3668 stream_INSTRUCTION_FORMAT4rcc_METHOD.add(INSTRUCTION_FORMAT4rcc_METHOD83); 3669 3670 // AST REWRITE 3671 // elements: 3672 // token labels: 3673 // rule labels: retval 3674 // token list labels: 3675 // rule list labels: 3676 // wildcard labels: 3677 retval.tree = root_0; 3678 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3679 3680 root_0 = (CommonTree)adaptor.nil(); 3681 // 577:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT4rcc_METHOD] 3682 { 3683 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT4rcc_METHOD83)); 3684 } 3685 3686 3687 retval.tree = root_0; 3688 3689 } 3690 break; 3691 case 41 : 3692 // smaliParser.g:578:5: INSTRUCTION_FORMAT51l 3693 { 3694 INSTRUCTION_FORMAT51l84=(Token)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name2211); 3695 stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l84); 3696 3697 // AST REWRITE 3698 // elements: 3699 // token labels: 3700 // rule labels: retval 3701 // token list labels: 3702 // rule list labels: 3703 // wildcard labels: 3704 retval.tree = root_0; 3705 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3706 3707 root_0 = (CommonTree)adaptor.nil(); 3708 // 578:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] 3709 { 3710 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT51l84)); 3711 } 3712 3713 3714 retval.tree = root_0; 3715 3716 } 3717 break; 3718 3719 } 3720 retval.stop = input.LT(-1); 3721 3722 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 3723 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 3724 3725 } 3726 catch (RecognitionException re) { 3727 reportError(re); 3728 recover(input,re); 3729 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 3730 } 3731 finally { 3732 // do for sure before leaving 3733 } 3734 return retval; 3735 } 3736 // $ANTLR end "simple_name" 3737 3738 3739 public static class member_name_return extends ParserRuleReturnScope { 3740 CommonTree tree; 3741 @Override 3742 public CommonTree getTree() { return tree; } 3743 }; 3744 3745 3746 // $ANTLR start "member_name" 3747 // smaliParser.g:580:1: member_name : ( simple_name | MEMBER_NAME -> SIMPLE_NAME[$MEMBER_NAME] ); 3748 public final smaliParser.member_name_return member_name() throws RecognitionException { 3749 smaliParser.member_name_return retval = new smaliParser.member_name_return(); 3750 retval.start = input.LT(1); 3751 3752 CommonTree root_0 = null; 3753 3754 Token MEMBER_NAME86=null; 3755 ParserRuleReturnScope simple_name85 =null; 3756 3757 CommonTree MEMBER_NAME86_tree=null; 3758 RewriteRuleTokenStream stream_MEMBER_NAME=new RewriteRuleTokenStream(adaptor,"token MEMBER_NAME"); 3759 3760 try { 3761 // smaliParser.g:581:3: ( simple_name | MEMBER_NAME -> SIMPLE_NAME[$MEMBER_NAME] ) 3762 int alt11=2; 3763 int LA11_0 = input.LA(1); 3764 if ( (LA11_0==ACCESS_SPEC||LA11_0==ANNOTATION_VISIBILITY||LA11_0==BOOL_LITERAL||LA11_0==DOUBLE_LITERAL_OR_ID||LA11_0==FLOAT_LITERAL_OR_ID||(LA11_0 >= INSTRUCTION_FORMAT10t && LA11_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA11_0==INSTRUCTION_FORMAT11x||LA11_0==INSTRUCTION_FORMAT12x_OR_ID||(LA11_0 >= INSTRUCTION_FORMAT21c_FIELD && LA11_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA11_0==INSTRUCTION_FORMAT21t||(LA11_0 >= INSTRUCTION_FORMAT22c_FIELD && LA11_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA11_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA11_0 <= INSTRUCTION_FORMAT22t)||LA11_0==INSTRUCTION_FORMAT23x||(LA11_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA11_0 <= INSTRUCTION_FORMAT31t)||(LA11_0 >= INSTRUCTION_FORMAT35c_METHOD && LA11_0 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA11_0 >= INSTRUCTION_FORMAT45cc_METHOD && LA11_0 <= INSTRUCTION_FORMAT51l)||(LA11_0 >= NEGATIVE_INTEGER_LITERAL && LA11_0 <= NULL_LITERAL)||(LA11_0 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA11_0 <= PRIMITIVE_TYPE)||LA11_0==REGISTER||LA11_0==SIMPLE_NAME||(LA11_0 >= VERIFICATION_ERROR_TYPE && LA11_0 <= VOID_TYPE)) ) { 3765 alt11=1; 3766 } 3767 else if ( (LA11_0==MEMBER_NAME) ) { 3768 alt11=2; 3769 } 3770 3771 else { 3772 NoViableAltException nvae = 3773 new NoViableAltException("", 11, 0, input); 3774 throw nvae; 3775 } 3776 3777 switch (alt11) { 3778 case 1 : 3779 // smaliParser.g:581:5: simple_name 3780 { 3781 root_0 = (CommonTree)adaptor.nil(); 3782 3783 3784 pushFollow(FOLLOW_simple_name_in_member_name2226); 3785 simple_name85=simple_name(); 3786 state._fsp--; 3787 3788 adaptor.addChild(root_0, simple_name85.getTree()); 3789 3790 } 3791 break; 3792 case 2 : 3793 // smaliParser.g:582:5: MEMBER_NAME 3794 { 3795 MEMBER_NAME86=(Token)match(input,MEMBER_NAME,FOLLOW_MEMBER_NAME_in_member_name2232); 3796 stream_MEMBER_NAME.add(MEMBER_NAME86); 3797 3798 // AST REWRITE 3799 // elements: 3800 // token labels: 3801 // rule labels: retval 3802 // token list labels: 3803 // rule list labels: 3804 // wildcard labels: 3805 retval.tree = root_0; 3806 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3807 3808 root_0 = (CommonTree)adaptor.nil(); 3809 // 582:17: -> SIMPLE_NAME[$MEMBER_NAME] 3810 { 3811 adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, MEMBER_NAME86)); 3812 } 3813 3814 3815 retval.tree = root_0; 3816 3817 } 3818 break; 3819 3820 } 3821 retval.stop = input.LT(-1); 3822 3823 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 3824 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 3825 3826 } 3827 catch (RecognitionException re) { 3828 reportError(re); 3829 recover(input,re); 3830 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 3831 } 3832 finally { 3833 // do for sure before leaving 3834 } 3835 return retval; 3836 } 3837 // $ANTLR end "member_name" 3838 3839 3840 public static class method_prototype_return extends ParserRuleReturnScope { 3841 CommonTree tree; 3842 @Override 3843 public CommonTree getTree() { return tree; } 3844 }; 3845 3846 3847 // $ANTLR start "method_prototype" 3848 // smaliParser.g:584:1: method_prototype : OPEN_PAREN param_list CLOSE_PAREN type_descriptor -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) ; 3849 public final smaliParser.method_prototype_return method_prototype() throws RecognitionException { 3850 smaliParser.method_prototype_return retval = new smaliParser.method_prototype_return(); 3851 retval.start = input.LT(1); 3852 3853 CommonTree root_0 = null; 3854 3855 Token OPEN_PAREN87=null; 3856 Token CLOSE_PAREN89=null; 3857 ParserRuleReturnScope param_list88 =null; 3858 ParserRuleReturnScope type_descriptor90 =null; 3859 3860 CommonTree OPEN_PAREN87_tree=null; 3861 CommonTree CLOSE_PAREN89_tree=null; 3862 RewriteRuleTokenStream stream_OPEN_PAREN=new RewriteRuleTokenStream(adaptor,"token OPEN_PAREN"); 3863 RewriteRuleTokenStream stream_CLOSE_PAREN=new RewriteRuleTokenStream(adaptor,"token CLOSE_PAREN"); 3864 RewriteRuleSubtreeStream stream_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule type_descriptor"); 3865 RewriteRuleSubtreeStream stream_param_list=new RewriteRuleSubtreeStream(adaptor,"rule param_list"); 3866 3867 try { 3868 // smaliParser.g:585:3: ( OPEN_PAREN param_list CLOSE_PAREN type_descriptor -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) ) 3869 // smaliParser.g:585:5: OPEN_PAREN param_list CLOSE_PAREN type_descriptor 3870 { 3871 OPEN_PAREN87=(Token)match(input,OPEN_PAREN,FOLLOW_OPEN_PAREN_in_method_prototype2247); 3872 stream_OPEN_PAREN.add(OPEN_PAREN87); 3873 3874 pushFollow(FOLLOW_param_list_in_method_prototype2249); 3875 param_list88=param_list(); 3876 state._fsp--; 3877 3878 stream_param_list.add(param_list88.getTree()); 3879 CLOSE_PAREN89=(Token)match(input,CLOSE_PAREN,FOLLOW_CLOSE_PAREN_in_method_prototype2251); 3880 stream_CLOSE_PAREN.add(CLOSE_PAREN89); 3881 3882 pushFollow(FOLLOW_type_descriptor_in_method_prototype2253); 3883 type_descriptor90=type_descriptor(); 3884 state._fsp--; 3885 3886 stream_type_descriptor.add(type_descriptor90.getTree()); 3887 // AST REWRITE 3888 // elements: type_descriptor, param_list 3889 // token labels: 3890 // rule labels: retval 3891 // token list labels: 3892 // rule list labels: 3893 // wildcard labels: 3894 retval.tree = root_0; 3895 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3896 3897 root_0 = (CommonTree)adaptor.nil(); 3898 // 586:5: -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) 3899 { 3900 // smaliParser.g:586:8: ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) 3901 { 3902 CommonTree root_1 = (CommonTree)adaptor.nil(); 3903 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD_PROTOTYPE, (retval.start), "I_METHOD_PROTOTYPE"), root_1); 3904 // smaliParser.g:586:59: ^( I_METHOD_RETURN_TYPE type_descriptor ) 3905 { 3906 CommonTree root_2 = (CommonTree)adaptor.nil(); 3907 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD_RETURN_TYPE, "I_METHOD_RETURN_TYPE"), root_2); 3908 adaptor.addChild(root_2, stream_type_descriptor.nextTree()); 3909 adaptor.addChild(root_1, root_2); 3910 } 3911 3912 // smaliParser.g:586:99: ( param_list )? 3913 if ( stream_param_list.hasNext() ) { 3914 adaptor.addChild(root_1, stream_param_list.nextTree()); 3915 } 3916 stream_param_list.reset(); 3917 3918 adaptor.addChild(root_0, root_1); 3919 } 3920 3921 } 3922 3923 3924 retval.tree = root_0; 3925 3926 } 3927 3928 retval.stop = input.LT(-1); 3929 3930 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 3931 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 3932 3933 } 3934 catch (RecognitionException re) { 3935 reportError(re); 3936 recover(input,re); 3937 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 3938 } 3939 finally { 3940 // do for sure before leaving 3941 } 3942 return retval; 3943 } 3944 // $ANTLR end "method_prototype" 3945 3946 3947 public static class param_list_or_id_primitive_type_return extends ParserRuleReturnScope { 3948 CommonTree tree; 3949 @Override 3950 public CommonTree getTree() { return tree; } 3951 }; 3952 3953 3954 // $ANTLR start "param_list_or_id_primitive_type" 3955 // smaliParser.g:588:1: param_list_or_id_primitive_type : PARAM_LIST_OR_ID_PRIMITIVE_TYPE -> PRIMITIVE_TYPE[$PARAM_LIST_OR_ID_PRIMITIVE_TYPE] ; 3956 public final smaliParser.param_list_or_id_primitive_type_return param_list_or_id_primitive_type() throws RecognitionException { 3957 smaliParser.param_list_or_id_primitive_type_return retval = new smaliParser.param_list_or_id_primitive_type_return(); 3958 retval.start = input.LT(1); 3959 3960 CommonTree root_0 = null; 3961 3962 Token PARAM_LIST_OR_ID_PRIMITIVE_TYPE91=null; 3963 3964 CommonTree PARAM_LIST_OR_ID_PRIMITIVE_TYPE91_tree=null; 3965 RewriteRuleTokenStream stream_PARAM_LIST_OR_ID_PRIMITIVE_TYPE=new RewriteRuleTokenStream(adaptor,"token PARAM_LIST_OR_ID_PRIMITIVE_TYPE"); 3966 3967 try { 3968 // smaliParser.g:589:3: ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE -> PRIMITIVE_TYPE[$PARAM_LIST_OR_ID_PRIMITIVE_TYPE] ) 3969 // smaliParser.g:589:5: PARAM_LIST_OR_ID_PRIMITIVE_TYPE 3970 { 3971 PARAM_LIST_OR_ID_PRIMITIVE_TYPE91=(Token)match(input,PARAM_LIST_OR_ID_PRIMITIVE_TYPE,FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id_primitive_type2283); 3972 stream_PARAM_LIST_OR_ID_PRIMITIVE_TYPE.add(PARAM_LIST_OR_ID_PRIMITIVE_TYPE91); 3973 3974 // AST REWRITE 3975 // elements: 3976 // token labels: 3977 // rule labels: retval 3978 // token list labels: 3979 // rule list labels: 3980 // wildcard labels: 3981 retval.tree = root_0; 3982 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 3983 3984 root_0 = (CommonTree)adaptor.nil(); 3985 // 589:37: -> PRIMITIVE_TYPE[$PARAM_LIST_OR_ID_PRIMITIVE_TYPE] 3986 { 3987 adaptor.addChild(root_0, (CommonTree)adaptor.create(PRIMITIVE_TYPE, PARAM_LIST_OR_ID_PRIMITIVE_TYPE91)); 3988 } 3989 3990 3991 retval.tree = root_0; 3992 3993 } 3994 3995 retval.stop = input.LT(-1); 3996 3997 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 3998 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 3999 4000 } 4001 catch (RecognitionException re) { 4002 reportError(re); 4003 recover(input,re); 4004 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 4005 } 4006 finally { 4007 // do for sure before leaving 4008 } 4009 return retval; 4010 } 4011 // $ANTLR end "param_list_or_id_primitive_type" 4012 4013 4014 public static class param_list_return extends ParserRuleReturnScope { 4015 CommonTree tree; 4016 @Override 4017 public CommonTree getTree() { return tree; } 4018 }; 4019 4020 4021 // $ANTLR start "param_list" 4022 // smaliParser.g:591:1: param_list : ( ( param_list_or_id_primitive_type )+ | ( nonvoid_type_descriptor )* ); 4023 public final smaliParser.param_list_return param_list() throws RecognitionException { 4024 smaliParser.param_list_return retval = new smaliParser.param_list_return(); 4025 retval.start = input.LT(1); 4026 4027 CommonTree root_0 = null; 4028 4029 ParserRuleReturnScope param_list_or_id_primitive_type92 =null; 4030 ParserRuleReturnScope nonvoid_type_descriptor93 =null; 4031 4032 4033 try { 4034 // smaliParser.g:592:3: ( ( param_list_or_id_primitive_type )+ | ( nonvoid_type_descriptor )* ) 4035 int alt14=2; 4036 int LA14_0 = input.LA(1); 4037 if ( (LA14_0==PARAM_LIST_OR_ID_PRIMITIVE_TYPE) ) { 4038 alt14=1; 4039 } 4040 else if ( (LA14_0==ARRAY_TYPE_PREFIX||LA14_0==CLASS_DESCRIPTOR||LA14_0==CLOSE_PAREN||LA14_0==PRIMITIVE_TYPE) ) { 4041 alt14=2; 4042 } 4043 4044 else { 4045 NoViableAltException nvae = 4046 new NoViableAltException("", 14, 0, input); 4047 throw nvae; 4048 } 4049 4050 switch (alt14) { 4051 case 1 : 4052 // smaliParser.g:592:5: ( param_list_or_id_primitive_type )+ 4053 { 4054 root_0 = (CommonTree)adaptor.nil(); 4055 4056 4057 // smaliParser.g:592:5: ( param_list_or_id_primitive_type )+ 4058 int cnt12=0; 4059 loop12: 4060 while (true) { 4061 int alt12=2; 4062 int LA12_0 = input.LA(1); 4063 if ( (LA12_0==PARAM_LIST_OR_ID_PRIMITIVE_TYPE) ) { 4064 alt12=1; 4065 } 4066 4067 switch (alt12) { 4068 case 1 : 4069 // smaliParser.g:592:5: param_list_or_id_primitive_type 4070 { 4071 pushFollow(FOLLOW_param_list_or_id_primitive_type_in_param_list2298); 4072 param_list_or_id_primitive_type92=param_list_or_id_primitive_type(); 4073 state._fsp--; 4074 4075 adaptor.addChild(root_0, param_list_or_id_primitive_type92.getTree()); 4076 4077 } 4078 break; 4079 4080 default : 4081 if ( cnt12 >= 1 ) break loop12; 4082 EarlyExitException eee = new EarlyExitException(12, input); 4083 throw eee; 4084 } 4085 cnt12++; 4086 } 4087 4088 } 4089 break; 4090 case 2 : 4091 // smaliParser.g:593:5: ( nonvoid_type_descriptor )* 4092 { 4093 root_0 = (CommonTree)adaptor.nil(); 4094 4095 4096 // smaliParser.g:593:5: ( nonvoid_type_descriptor )* 4097 loop13: 4098 while (true) { 4099 int alt13=2; 4100 int LA13_0 = input.LA(1); 4101 if ( (LA13_0==ARRAY_TYPE_PREFIX||LA13_0==CLASS_DESCRIPTOR||LA13_0==PRIMITIVE_TYPE) ) { 4102 alt13=1; 4103 } 4104 4105 switch (alt13) { 4106 case 1 : 4107 // smaliParser.g:593:5: nonvoid_type_descriptor 4108 { 4109 pushFollow(FOLLOW_nonvoid_type_descriptor_in_param_list2305); 4110 nonvoid_type_descriptor93=nonvoid_type_descriptor(); 4111 state._fsp--; 4112 4113 adaptor.addChild(root_0, nonvoid_type_descriptor93.getTree()); 4114 4115 } 4116 break; 4117 4118 default : 4119 break loop13; 4120 } 4121 } 4122 4123 } 4124 break; 4125 4126 } 4127 retval.stop = input.LT(-1); 4128 4129 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 4130 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 4131 4132 } 4133 catch (RecognitionException re) { 4134 reportError(re); 4135 recover(input,re); 4136 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 4137 } 4138 finally { 4139 // do for sure before leaving 4140 } 4141 return retval; 4142 } 4143 // $ANTLR end "param_list" 4144 4145 4146 public static class array_descriptor_return extends ParserRuleReturnScope { 4147 CommonTree tree; 4148 @Override 4149 public CommonTree getTree() { return tree; } 4150 }; 4151 4152 4153 // $ANTLR start "array_descriptor" 4154 // smaliParser.g:595:1: array_descriptor : ARRAY_TYPE_PREFIX ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR ) ; 4155 public final smaliParser.array_descriptor_return array_descriptor() throws RecognitionException { 4156 smaliParser.array_descriptor_return retval = new smaliParser.array_descriptor_return(); 4157 retval.start = input.LT(1); 4158 4159 CommonTree root_0 = null; 4160 4161 Token ARRAY_TYPE_PREFIX94=null; 4162 Token set95=null; 4163 4164 CommonTree ARRAY_TYPE_PREFIX94_tree=null; 4165 CommonTree set95_tree=null; 4166 4167 try { 4168 // smaliParser.g:596:3: ( ARRAY_TYPE_PREFIX ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR ) ) 4169 // smaliParser.g:596:5: ARRAY_TYPE_PREFIX ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR ) 4170 { 4171 root_0 = (CommonTree)adaptor.nil(); 4172 4173 4174 ARRAY_TYPE_PREFIX94=(Token)match(input,ARRAY_TYPE_PREFIX,FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor2316); 4175 ARRAY_TYPE_PREFIX94_tree = (CommonTree)adaptor.create(ARRAY_TYPE_PREFIX94); 4176 adaptor.addChild(root_0, ARRAY_TYPE_PREFIX94_tree); 4177 4178 set95=input.LT(1); 4179 if ( input.LA(1)==CLASS_DESCRIPTOR||input.LA(1)==PRIMITIVE_TYPE ) { 4180 input.consume(); 4181 adaptor.addChild(root_0, (CommonTree)adaptor.create(set95)); 4182 state.errorRecovery=false; 4183 } 4184 else { 4185 MismatchedSetException mse = new MismatchedSetException(null,input); 4186 throw mse; 4187 } 4188 } 4189 4190 retval.stop = input.LT(-1); 4191 4192 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 4193 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 4194 4195 } 4196 catch (RecognitionException re) { 4197 reportError(re); 4198 recover(input,re); 4199 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 4200 } 4201 finally { 4202 // do for sure before leaving 4203 } 4204 return retval; 4205 } 4206 // $ANTLR end "array_descriptor" 4207 4208 4209 public static class type_descriptor_return extends ParserRuleReturnScope { 4210 CommonTree tree; 4211 @Override 4212 public CommonTree getTree() { return tree; } 4213 }; 4214 4215 4216 // $ANTLR start "type_descriptor" 4217 // smaliParser.g:598:1: type_descriptor : ( VOID_TYPE | PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor ); 4218 public final smaliParser.type_descriptor_return type_descriptor() throws RecognitionException { 4219 smaliParser.type_descriptor_return retval = new smaliParser.type_descriptor_return(); 4220 retval.start = input.LT(1); 4221 4222 CommonTree root_0 = null; 4223 4224 Token VOID_TYPE96=null; 4225 Token PRIMITIVE_TYPE97=null; 4226 Token CLASS_DESCRIPTOR98=null; 4227 ParserRuleReturnScope array_descriptor99 =null; 4228 4229 CommonTree VOID_TYPE96_tree=null; 4230 CommonTree PRIMITIVE_TYPE97_tree=null; 4231 CommonTree CLASS_DESCRIPTOR98_tree=null; 4232 4233 try { 4234 // smaliParser.g:599:3: ( VOID_TYPE | PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor ) 4235 int alt15=4; 4236 switch ( input.LA(1) ) { 4237 case VOID_TYPE: 4238 { 4239 alt15=1; 4240 } 4241 break; 4242 case PRIMITIVE_TYPE: 4243 { 4244 alt15=2; 4245 } 4246 break; 4247 case CLASS_DESCRIPTOR: 4248 { 4249 alt15=3; 4250 } 4251 break; 4252 case ARRAY_TYPE_PREFIX: 4253 { 4254 alt15=4; 4255 } 4256 break; 4257 default: 4258 NoViableAltException nvae = 4259 new NoViableAltException("", 15, 0, input); 4260 throw nvae; 4261 } 4262 switch (alt15) { 4263 case 1 : 4264 // smaliParser.g:599:5: VOID_TYPE 4265 { 4266 root_0 = (CommonTree)adaptor.nil(); 4267 4268 4269 VOID_TYPE96=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_descriptor2334); 4270 VOID_TYPE96_tree = (CommonTree)adaptor.create(VOID_TYPE96); 4271 adaptor.addChild(root_0, VOID_TYPE96_tree); 4272 4273 } 4274 break; 4275 case 2 : 4276 // smaliParser.g:600:5: PRIMITIVE_TYPE 4277 { 4278 root_0 = (CommonTree)adaptor.nil(); 4279 4280 4281 PRIMITIVE_TYPE97=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_type_descriptor2340); 4282 PRIMITIVE_TYPE97_tree = (CommonTree)adaptor.create(PRIMITIVE_TYPE97); 4283 adaptor.addChild(root_0, PRIMITIVE_TYPE97_tree); 4284 4285 } 4286 break; 4287 case 3 : 4288 // smaliParser.g:601:5: CLASS_DESCRIPTOR 4289 { 4290 root_0 = (CommonTree)adaptor.nil(); 4291 4292 4293 CLASS_DESCRIPTOR98=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_type_descriptor2346); 4294 CLASS_DESCRIPTOR98_tree = (CommonTree)adaptor.create(CLASS_DESCRIPTOR98); 4295 adaptor.addChild(root_0, CLASS_DESCRIPTOR98_tree); 4296 4297 } 4298 break; 4299 case 4 : 4300 // smaliParser.g:602:5: array_descriptor 4301 { 4302 root_0 = (CommonTree)adaptor.nil(); 4303 4304 4305 pushFollow(FOLLOW_array_descriptor_in_type_descriptor2352); 4306 array_descriptor99=array_descriptor(); 4307 state._fsp--; 4308 4309 adaptor.addChild(root_0, array_descriptor99.getTree()); 4310 4311 } 4312 break; 4313 4314 } 4315 retval.stop = input.LT(-1); 4316 4317 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 4318 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 4319 4320 } 4321 catch (RecognitionException re) { 4322 reportError(re); 4323 recover(input,re); 4324 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 4325 } 4326 finally { 4327 // do for sure before leaving 4328 } 4329 return retval; 4330 } 4331 // $ANTLR end "type_descriptor" 4332 4333 4334 public static class nonvoid_type_descriptor_return extends ParserRuleReturnScope { 4335 CommonTree tree; 4336 @Override 4337 public CommonTree getTree() { return tree; } 4338 }; 4339 4340 4341 // $ANTLR start "nonvoid_type_descriptor" 4342 // smaliParser.g:604:1: nonvoid_type_descriptor : ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor ); 4343 public final smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor() throws RecognitionException { 4344 smaliParser.nonvoid_type_descriptor_return retval = new smaliParser.nonvoid_type_descriptor_return(); 4345 retval.start = input.LT(1); 4346 4347 CommonTree root_0 = null; 4348 4349 Token PRIMITIVE_TYPE100=null; 4350 Token CLASS_DESCRIPTOR101=null; 4351 ParserRuleReturnScope array_descriptor102 =null; 4352 4353 CommonTree PRIMITIVE_TYPE100_tree=null; 4354 CommonTree CLASS_DESCRIPTOR101_tree=null; 4355 4356 try { 4357 // smaliParser.g:605:3: ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor ) 4358 int alt16=3; 4359 switch ( input.LA(1) ) { 4360 case PRIMITIVE_TYPE: 4361 { 4362 alt16=1; 4363 } 4364 break; 4365 case CLASS_DESCRIPTOR: 4366 { 4367 alt16=2; 4368 } 4369 break; 4370 case ARRAY_TYPE_PREFIX: 4371 { 4372 alt16=3; 4373 } 4374 break; 4375 default: 4376 NoViableAltException nvae = 4377 new NoViableAltException("", 16, 0, input); 4378 throw nvae; 4379 } 4380 switch (alt16) { 4381 case 1 : 4382 // smaliParser.g:605:5: PRIMITIVE_TYPE 4383 { 4384 root_0 = (CommonTree)adaptor.nil(); 4385 4386 4387 PRIMITIVE_TYPE100=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor2362); 4388 PRIMITIVE_TYPE100_tree = (CommonTree)adaptor.create(PRIMITIVE_TYPE100); 4389 adaptor.addChild(root_0, PRIMITIVE_TYPE100_tree); 4390 4391 } 4392 break; 4393 case 2 : 4394 // smaliParser.g:606:5: CLASS_DESCRIPTOR 4395 { 4396 root_0 = (CommonTree)adaptor.nil(); 4397 4398 4399 CLASS_DESCRIPTOR101=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor2368); 4400 CLASS_DESCRIPTOR101_tree = (CommonTree)adaptor.create(CLASS_DESCRIPTOR101); 4401 adaptor.addChild(root_0, CLASS_DESCRIPTOR101_tree); 4402 4403 } 4404 break; 4405 case 3 : 4406 // smaliParser.g:607:5: array_descriptor 4407 { 4408 root_0 = (CommonTree)adaptor.nil(); 4409 4410 4411 pushFollow(FOLLOW_array_descriptor_in_nonvoid_type_descriptor2374); 4412 array_descriptor102=array_descriptor(); 4413 state._fsp--; 4414 4415 adaptor.addChild(root_0, array_descriptor102.getTree()); 4416 4417 } 4418 break; 4419 4420 } 4421 retval.stop = input.LT(-1); 4422 4423 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 4424 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 4425 4426 } 4427 catch (RecognitionException re) { 4428 reportError(re); 4429 recover(input,re); 4430 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 4431 } 4432 finally { 4433 // do for sure before leaving 4434 } 4435 return retval; 4436 } 4437 // $ANTLR end "nonvoid_type_descriptor" 4438 4439 4440 public static class reference_type_descriptor_return extends ParserRuleReturnScope { 4441 CommonTree tree; 4442 @Override 4443 public CommonTree getTree() { return tree; } 4444 }; 4445 4446 4447 // $ANTLR start "reference_type_descriptor" 4448 // smaliParser.g:609:1: reference_type_descriptor : ( CLASS_DESCRIPTOR | array_descriptor ); 4449 public final smaliParser.reference_type_descriptor_return reference_type_descriptor() throws RecognitionException { 4450 smaliParser.reference_type_descriptor_return retval = new smaliParser.reference_type_descriptor_return(); 4451 retval.start = input.LT(1); 4452 4453 CommonTree root_0 = null; 4454 4455 Token CLASS_DESCRIPTOR103=null; 4456 ParserRuleReturnScope array_descriptor104 =null; 4457 4458 CommonTree CLASS_DESCRIPTOR103_tree=null; 4459 4460 try { 4461 // smaliParser.g:610:3: ( CLASS_DESCRIPTOR | array_descriptor ) 4462 int alt17=2; 4463 int LA17_0 = input.LA(1); 4464 if ( (LA17_0==CLASS_DESCRIPTOR) ) { 4465 alt17=1; 4466 } 4467 else if ( (LA17_0==ARRAY_TYPE_PREFIX) ) { 4468 alt17=2; 4469 } 4470 4471 else { 4472 NoViableAltException nvae = 4473 new NoViableAltException("", 17, 0, input); 4474 throw nvae; 4475 } 4476 4477 switch (alt17) { 4478 case 1 : 4479 // smaliParser.g:610:5: CLASS_DESCRIPTOR 4480 { 4481 root_0 = (CommonTree)adaptor.nil(); 4482 4483 4484 CLASS_DESCRIPTOR103=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor2384); 4485 CLASS_DESCRIPTOR103_tree = (CommonTree)adaptor.create(CLASS_DESCRIPTOR103); 4486 adaptor.addChild(root_0, CLASS_DESCRIPTOR103_tree); 4487 4488 } 4489 break; 4490 case 2 : 4491 // smaliParser.g:611:5: array_descriptor 4492 { 4493 root_0 = (CommonTree)adaptor.nil(); 4494 4495 4496 pushFollow(FOLLOW_array_descriptor_in_reference_type_descriptor2390); 4497 array_descriptor104=array_descriptor(); 4498 state._fsp--; 4499 4500 adaptor.addChild(root_0, array_descriptor104.getTree()); 4501 4502 } 4503 break; 4504 4505 } 4506 retval.stop = input.LT(-1); 4507 4508 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 4509 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 4510 4511 } 4512 catch (RecognitionException re) { 4513 reportError(re); 4514 recover(input,re); 4515 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 4516 } 4517 finally { 4518 // do for sure before leaving 4519 } 4520 return retval; 4521 } 4522 // $ANTLR end "reference_type_descriptor" 4523 4524 4525 public static class integer_literal_return extends ParserRuleReturnScope { 4526 CommonTree tree; 4527 @Override 4528 public CommonTree getTree() { return tree; } 4529 }; 4530 4531 4532 // $ANTLR start "integer_literal" 4533 // smaliParser.g:613:1: integer_literal : ( POSITIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] ); 4534 public final smaliParser.integer_literal_return integer_literal() throws RecognitionException { 4535 smaliParser.integer_literal_return retval = new smaliParser.integer_literal_return(); 4536 retval.start = input.LT(1); 4537 4538 CommonTree root_0 = null; 4539 4540 Token POSITIVE_INTEGER_LITERAL105=null; 4541 Token NEGATIVE_INTEGER_LITERAL106=null; 4542 4543 CommonTree POSITIVE_INTEGER_LITERAL105_tree=null; 4544 CommonTree NEGATIVE_INTEGER_LITERAL106_tree=null; 4545 RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token NEGATIVE_INTEGER_LITERAL"); 4546 RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token POSITIVE_INTEGER_LITERAL"); 4547 4548 try { 4549 // smaliParser.g:614:3: ( POSITIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] ) 4550 int alt18=2; 4551 int LA18_0 = input.LA(1); 4552 if ( (LA18_0==POSITIVE_INTEGER_LITERAL) ) { 4553 alt18=1; 4554 } 4555 else if ( (LA18_0==NEGATIVE_INTEGER_LITERAL) ) { 4556 alt18=2; 4557 } 4558 4559 else { 4560 NoViableAltException nvae = 4561 new NoViableAltException("", 18, 0, input); 4562 throw nvae; 4563 } 4564 4565 switch (alt18) { 4566 case 1 : 4567 // smaliParser.g:614:5: POSITIVE_INTEGER_LITERAL 4568 { 4569 POSITIVE_INTEGER_LITERAL105=(Token)match(input,POSITIVE_INTEGER_LITERAL,FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal2400); 4570 stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL105); 4571 4572 // AST REWRITE 4573 // elements: 4574 // token labels: 4575 // rule labels: retval 4576 // token list labels: 4577 // rule list labels: 4578 // wildcard labels: 4579 retval.tree = root_0; 4580 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 4581 4582 root_0 = (CommonTree)adaptor.nil(); 4583 // 614:30: -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] 4584 { 4585 adaptor.addChild(root_0, (CommonTree)adaptor.create(INTEGER_LITERAL, POSITIVE_INTEGER_LITERAL105)); 4586 } 4587 4588 4589 retval.tree = root_0; 4590 4591 } 4592 break; 4593 case 2 : 4594 // smaliParser.g:615:5: NEGATIVE_INTEGER_LITERAL 4595 { 4596 NEGATIVE_INTEGER_LITERAL106=(Token)match(input,NEGATIVE_INTEGER_LITERAL,FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal2411); 4597 stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL106); 4598 4599 // AST REWRITE 4600 // elements: 4601 // token labels: 4602 // rule labels: retval 4603 // token list labels: 4604 // rule list labels: 4605 // wildcard labels: 4606 retval.tree = root_0; 4607 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 4608 4609 root_0 = (CommonTree)adaptor.nil(); 4610 // 615:30: -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] 4611 { 4612 adaptor.addChild(root_0, (CommonTree)adaptor.create(INTEGER_LITERAL, NEGATIVE_INTEGER_LITERAL106)); 4613 } 4614 4615 4616 retval.tree = root_0; 4617 4618 } 4619 break; 4620 4621 } 4622 retval.stop = input.LT(-1); 4623 4624 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 4625 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 4626 4627 } 4628 catch (RecognitionException re) { 4629 reportError(re); 4630 recover(input,re); 4631 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 4632 } 4633 finally { 4634 // do for sure before leaving 4635 } 4636 return retval; 4637 } 4638 // $ANTLR end "integer_literal" 4639 4640 4641 public static class float_literal_return extends ParserRuleReturnScope { 4642 CommonTree tree; 4643 @Override 4644 public CommonTree getTree() { return tree; } 4645 }; 4646 4647 4648 // $ANTLR start "float_literal" 4649 // smaliParser.g:617:1: float_literal : ( FLOAT_LITERAL_OR_ID -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] | FLOAT_LITERAL ); 4650 public final smaliParser.float_literal_return float_literal() throws RecognitionException { 4651 smaliParser.float_literal_return retval = new smaliParser.float_literal_return(); 4652 retval.start = input.LT(1); 4653 4654 CommonTree root_0 = null; 4655 4656 Token FLOAT_LITERAL_OR_ID107=null; 4657 Token FLOAT_LITERAL108=null; 4658 4659 CommonTree FLOAT_LITERAL_OR_ID107_tree=null; 4660 CommonTree FLOAT_LITERAL108_tree=null; 4661 RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token FLOAT_LITERAL_OR_ID"); 4662 4663 try { 4664 // smaliParser.g:618:3: ( FLOAT_LITERAL_OR_ID -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] | FLOAT_LITERAL ) 4665 int alt19=2; 4666 int LA19_0 = input.LA(1); 4667 if ( (LA19_0==FLOAT_LITERAL_OR_ID) ) { 4668 alt19=1; 4669 } 4670 else if ( (LA19_0==FLOAT_LITERAL) ) { 4671 alt19=2; 4672 } 4673 4674 else { 4675 NoViableAltException nvae = 4676 new NoViableAltException("", 19, 0, input); 4677 throw nvae; 4678 } 4679 4680 switch (alt19) { 4681 case 1 : 4682 // smaliParser.g:618:5: FLOAT_LITERAL_OR_ID 4683 { 4684 FLOAT_LITERAL_OR_ID107=(Token)match(input,FLOAT_LITERAL_OR_ID,FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal2426); 4685 stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID107); 4686 4687 // AST REWRITE 4688 // elements: 4689 // token labels: 4690 // rule labels: retval 4691 // token list labels: 4692 // rule list labels: 4693 // wildcard labels: 4694 retval.tree = root_0; 4695 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 4696 4697 root_0 = (CommonTree)adaptor.nil(); 4698 // 618:25: -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] 4699 { 4700 adaptor.addChild(root_0, (CommonTree)adaptor.create(FLOAT_LITERAL, FLOAT_LITERAL_OR_ID107)); 4701 } 4702 4703 4704 retval.tree = root_0; 4705 4706 } 4707 break; 4708 case 2 : 4709 // smaliParser.g:619:5: FLOAT_LITERAL 4710 { 4711 root_0 = (CommonTree)adaptor.nil(); 4712 4713 4714 FLOAT_LITERAL108=(Token)match(input,FLOAT_LITERAL,FOLLOW_FLOAT_LITERAL_in_float_literal2437); 4715 FLOAT_LITERAL108_tree = (CommonTree)adaptor.create(FLOAT_LITERAL108); 4716 adaptor.addChild(root_0, FLOAT_LITERAL108_tree); 4717 4718 } 4719 break; 4720 4721 } 4722 retval.stop = input.LT(-1); 4723 4724 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 4725 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 4726 4727 } 4728 catch (RecognitionException re) { 4729 reportError(re); 4730 recover(input,re); 4731 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 4732 } 4733 finally { 4734 // do for sure before leaving 4735 } 4736 return retval; 4737 } 4738 // $ANTLR end "float_literal" 4739 4740 4741 public static class double_literal_return extends ParserRuleReturnScope { 4742 CommonTree tree; 4743 @Override 4744 public CommonTree getTree() { return tree; } 4745 }; 4746 4747 4748 // $ANTLR start "double_literal" 4749 // smaliParser.g:621:1: double_literal : ( DOUBLE_LITERAL_OR_ID -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] | DOUBLE_LITERAL ); 4750 public final smaliParser.double_literal_return double_literal() throws RecognitionException { 4751 smaliParser.double_literal_return retval = new smaliParser.double_literal_return(); 4752 retval.start = input.LT(1); 4753 4754 CommonTree root_0 = null; 4755 4756 Token DOUBLE_LITERAL_OR_ID109=null; 4757 Token DOUBLE_LITERAL110=null; 4758 4759 CommonTree DOUBLE_LITERAL_OR_ID109_tree=null; 4760 CommonTree DOUBLE_LITERAL110_tree=null; 4761 RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token DOUBLE_LITERAL_OR_ID"); 4762 4763 try { 4764 // smaliParser.g:622:3: ( DOUBLE_LITERAL_OR_ID -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] | DOUBLE_LITERAL ) 4765 int alt20=2; 4766 int LA20_0 = input.LA(1); 4767 if ( (LA20_0==DOUBLE_LITERAL_OR_ID) ) { 4768 alt20=1; 4769 } 4770 else if ( (LA20_0==DOUBLE_LITERAL) ) { 4771 alt20=2; 4772 } 4773 4774 else { 4775 NoViableAltException nvae = 4776 new NoViableAltException("", 20, 0, input); 4777 throw nvae; 4778 } 4779 4780 switch (alt20) { 4781 case 1 : 4782 // smaliParser.g:622:5: DOUBLE_LITERAL_OR_ID 4783 { 4784 DOUBLE_LITERAL_OR_ID109=(Token)match(input,DOUBLE_LITERAL_OR_ID,FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal2447); 4785 stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID109); 4786 4787 // AST REWRITE 4788 // elements: 4789 // token labels: 4790 // rule labels: retval 4791 // token list labels: 4792 // rule list labels: 4793 // wildcard labels: 4794 retval.tree = root_0; 4795 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 4796 4797 root_0 = (CommonTree)adaptor.nil(); 4798 // 622:26: -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] 4799 { 4800 adaptor.addChild(root_0, (CommonTree)adaptor.create(DOUBLE_LITERAL, DOUBLE_LITERAL_OR_ID109)); 4801 } 4802 4803 4804 retval.tree = root_0; 4805 4806 } 4807 break; 4808 case 2 : 4809 // smaliParser.g:623:5: DOUBLE_LITERAL 4810 { 4811 root_0 = (CommonTree)adaptor.nil(); 4812 4813 4814 DOUBLE_LITERAL110=(Token)match(input,DOUBLE_LITERAL,FOLLOW_DOUBLE_LITERAL_in_double_literal2458); 4815 DOUBLE_LITERAL110_tree = (CommonTree)adaptor.create(DOUBLE_LITERAL110); 4816 adaptor.addChild(root_0, DOUBLE_LITERAL110_tree); 4817 4818 } 4819 break; 4820 4821 } 4822 retval.stop = input.LT(-1); 4823 4824 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 4825 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 4826 4827 } 4828 catch (RecognitionException re) { 4829 reportError(re); 4830 recover(input,re); 4831 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 4832 } 4833 finally { 4834 // do for sure before leaving 4835 } 4836 return retval; 4837 } 4838 // $ANTLR end "double_literal" 4839 4840 4841 public static class literal_return extends ParserRuleReturnScope { 4842 CommonTree tree; 4843 @Override 4844 public CommonTree getTree() { return tree; } 4845 }; 4846 4847 4848 // $ANTLR start "literal" 4849 // smaliParser.g:625:1: literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | STRING_LITERAL | BOOL_LITERAL | NULL_LITERAL | array_literal | subannotation | type_field_method_literal | enum_literal ); 4850 public final smaliParser.literal_return literal() throws RecognitionException { 4851 smaliParser.literal_return retval = new smaliParser.literal_return(); 4852 retval.start = input.LT(1); 4853 4854 CommonTree root_0 = null; 4855 4856 Token LONG_LITERAL111=null; 4857 Token SHORT_LITERAL113=null; 4858 Token BYTE_LITERAL114=null; 4859 Token CHAR_LITERAL117=null; 4860 Token STRING_LITERAL118=null; 4861 Token BOOL_LITERAL119=null; 4862 Token NULL_LITERAL120=null; 4863 ParserRuleReturnScope integer_literal112 =null; 4864 ParserRuleReturnScope float_literal115 =null; 4865 ParserRuleReturnScope double_literal116 =null; 4866 ParserRuleReturnScope array_literal121 =null; 4867 ParserRuleReturnScope subannotation122 =null; 4868 ParserRuleReturnScope type_field_method_literal123 =null; 4869 ParserRuleReturnScope enum_literal124 =null; 4870 4871 CommonTree LONG_LITERAL111_tree=null; 4872 CommonTree SHORT_LITERAL113_tree=null; 4873 CommonTree BYTE_LITERAL114_tree=null; 4874 CommonTree CHAR_LITERAL117_tree=null; 4875 CommonTree STRING_LITERAL118_tree=null; 4876 CommonTree BOOL_LITERAL119_tree=null; 4877 CommonTree NULL_LITERAL120_tree=null; 4878 4879 try { 4880 // smaliParser.g:626:3: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | STRING_LITERAL | BOOL_LITERAL | NULL_LITERAL | array_literal | subannotation | type_field_method_literal | enum_literal ) 4881 int alt21=14; 4882 switch ( input.LA(1) ) { 4883 case LONG_LITERAL: 4884 { 4885 alt21=1; 4886 } 4887 break; 4888 case POSITIVE_INTEGER_LITERAL: 4889 { 4890 int LA21_2 = input.LA(2); 4891 if ( (LA21_2==EOF||(LA21_2 >= ACCESS_SPEC && LA21_2 <= ANNOTATION_VISIBILITY)||LA21_2==BOOL_LITERAL||(LA21_2 >= CLASS_DIRECTIVE && LA21_2 <= CLOSE_BRACE)||LA21_2==COMMA||(LA21_2 >= DOUBLE_LITERAL_OR_ID && LA21_2 <= END_ANNOTATION_DIRECTIVE)||LA21_2==END_FIELD_DIRECTIVE||LA21_2==END_SUBANNOTATION_DIRECTIVE||LA21_2==FIELD_DIRECTIVE||(LA21_2 >= FLOAT_LITERAL_OR_ID && LA21_2 <= IMPLEMENTS_DIRECTIVE)||(LA21_2 >= INSTRUCTION_FORMAT10t && LA21_2 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_2==INSTRUCTION_FORMAT11x||LA21_2==INSTRUCTION_FORMAT12x_OR_ID||(LA21_2 >= INSTRUCTION_FORMAT21c_FIELD && LA21_2 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_2==INSTRUCTION_FORMAT21t||(LA21_2 >= INSTRUCTION_FORMAT22c_FIELD && LA21_2 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_2 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_2 <= INSTRUCTION_FORMAT22t)||LA21_2==INSTRUCTION_FORMAT23x||(LA21_2 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_2 <= INSTRUCTION_FORMAT31t)||(LA21_2 >= INSTRUCTION_FORMAT35c_METHOD && LA21_2 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_2 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_2 <= INSTRUCTION_FORMAT51l)||(LA21_2 >= METHOD_DIRECTIVE && LA21_2 <= NULL_LITERAL)||(LA21_2 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_2 <= PRIMITIVE_TYPE)||LA21_2==REGISTER||(LA21_2 >= SIMPLE_NAME && LA21_2 <= SOURCE_DIRECTIVE)||(LA21_2 >= SUPER_DIRECTIVE && LA21_2 <= VOID_TYPE)) ) { 4892 alt21=2; 4893 } 4894 else if ( (LA21_2==COLON||LA21_2==OPEN_PAREN) ) { 4895 alt21=13; 4896 } 4897 4898 else { 4899 int nvaeMark = input.mark(); 4900 try { 4901 input.consume(); 4902 NoViableAltException nvae = 4903 new NoViableAltException("", 21, 2, input); 4904 throw nvae; 4905 } finally { 4906 input.rewind(nvaeMark); 4907 } 4908 } 4909 4910 } 4911 break; 4912 case NEGATIVE_INTEGER_LITERAL: 4913 { 4914 int LA21_3 = input.LA(2); 4915 if ( (LA21_3==EOF||(LA21_3 >= ACCESS_SPEC && LA21_3 <= ANNOTATION_VISIBILITY)||LA21_3==BOOL_LITERAL||(LA21_3 >= CLASS_DIRECTIVE && LA21_3 <= CLOSE_BRACE)||LA21_3==COMMA||(LA21_3 >= DOUBLE_LITERAL_OR_ID && LA21_3 <= END_ANNOTATION_DIRECTIVE)||LA21_3==END_FIELD_DIRECTIVE||LA21_3==END_SUBANNOTATION_DIRECTIVE||LA21_3==FIELD_DIRECTIVE||(LA21_3 >= FLOAT_LITERAL_OR_ID && LA21_3 <= IMPLEMENTS_DIRECTIVE)||(LA21_3 >= INSTRUCTION_FORMAT10t && LA21_3 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_3==INSTRUCTION_FORMAT11x||LA21_3==INSTRUCTION_FORMAT12x_OR_ID||(LA21_3 >= INSTRUCTION_FORMAT21c_FIELD && LA21_3 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_3==INSTRUCTION_FORMAT21t||(LA21_3 >= INSTRUCTION_FORMAT22c_FIELD && LA21_3 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_3 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_3 <= INSTRUCTION_FORMAT22t)||LA21_3==INSTRUCTION_FORMAT23x||(LA21_3 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_3 <= INSTRUCTION_FORMAT31t)||(LA21_3 >= INSTRUCTION_FORMAT35c_METHOD && LA21_3 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_3 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_3 <= INSTRUCTION_FORMAT51l)||(LA21_3 >= METHOD_DIRECTIVE && LA21_3 <= NULL_LITERAL)||(LA21_3 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_3 <= PRIMITIVE_TYPE)||LA21_3==REGISTER||(LA21_3 >= SIMPLE_NAME && LA21_3 <= SOURCE_DIRECTIVE)||(LA21_3 >= SUPER_DIRECTIVE && LA21_3 <= VOID_TYPE)) ) { 4916 alt21=2; 4917 } 4918 else if ( (LA21_3==COLON||LA21_3==OPEN_PAREN) ) { 4919 alt21=13; 4920 } 4921 4922 else { 4923 int nvaeMark = input.mark(); 4924 try { 4925 input.consume(); 4926 NoViableAltException nvae = 4927 new NoViableAltException("", 21, 3, input); 4928 throw nvae; 4929 } finally { 4930 input.rewind(nvaeMark); 4931 } 4932 } 4933 4934 } 4935 break; 4936 case SHORT_LITERAL: 4937 { 4938 alt21=3; 4939 } 4940 break; 4941 case BYTE_LITERAL: 4942 { 4943 alt21=4; 4944 } 4945 break; 4946 case FLOAT_LITERAL_OR_ID: 4947 { 4948 int LA21_6 = input.LA(2); 4949 if ( (LA21_6==EOF||(LA21_6 >= ACCESS_SPEC && LA21_6 <= ANNOTATION_VISIBILITY)||LA21_6==BOOL_LITERAL||(LA21_6 >= CLASS_DIRECTIVE && LA21_6 <= CLOSE_BRACE)||LA21_6==COMMA||(LA21_6 >= DOUBLE_LITERAL_OR_ID && LA21_6 <= END_ANNOTATION_DIRECTIVE)||LA21_6==END_FIELD_DIRECTIVE||LA21_6==END_SUBANNOTATION_DIRECTIVE||LA21_6==FIELD_DIRECTIVE||(LA21_6 >= FLOAT_LITERAL_OR_ID && LA21_6 <= IMPLEMENTS_DIRECTIVE)||(LA21_6 >= INSTRUCTION_FORMAT10t && LA21_6 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_6==INSTRUCTION_FORMAT11x||LA21_6==INSTRUCTION_FORMAT12x_OR_ID||(LA21_6 >= INSTRUCTION_FORMAT21c_FIELD && LA21_6 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_6==INSTRUCTION_FORMAT21t||(LA21_6 >= INSTRUCTION_FORMAT22c_FIELD && LA21_6 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_6 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_6 <= INSTRUCTION_FORMAT22t)||LA21_6==INSTRUCTION_FORMAT23x||(LA21_6 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_6 <= INSTRUCTION_FORMAT31t)||(LA21_6 >= INSTRUCTION_FORMAT35c_METHOD && LA21_6 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_6 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_6 <= INSTRUCTION_FORMAT51l)||(LA21_6 >= METHOD_DIRECTIVE && LA21_6 <= NULL_LITERAL)||(LA21_6 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_6 <= PRIMITIVE_TYPE)||LA21_6==REGISTER||(LA21_6 >= SIMPLE_NAME && LA21_6 <= SOURCE_DIRECTIVE)||(LA21_6 >= SUPER_DIRECTIVE && LA21_6 <= VOID_TYPE)) ) { 4950 alt21=5; 4951 } 4952 else if ( (LA21_6==COLON||LA21_6==OPEN_PAREN) ) { 4953 alt21=13; 4954 } 4955 4956 else { 4957 int nvaeMark = input.mark(); 4958 try { 4959 input.consume(); 4960 NoViableAltException nvae = 4961 new NoViableAltException("", 21, 6, input); 4962 throw nvae; 4963 } finally { 4964 input.rewind(nvaeMark); 4965 } 4966 } 4967 4968 } 4969 break; 4970 case FLOAT_LITERAL: 4971 { 4972 alt21=5; 4973 } 4974 break; 4975 case DOUBLE_LITERAL_OR_ID: 4976 { 4977 int LA21_8 = input.LA(2); 4978 if ( (LA21_8==EOF||(LA21_8 >= ACCESS_SPEC && LA21_8 <= ANNOTATION_VISIBILITY)||LA21_8==BOOL_LITERAL||(LA21_8 >= CLASS_DIRECTIVE && LA21_8 <= CLOSE_BRACE)||LA21_8==COMMA||(LA21_8 >= DOUBLE_LITERAL_OR_ID && LA21_8 <= END_ANNOTATION_DIRECTIVE)||LA21_8==END_FIELD_DIRECTIVE||LA21_8==END_SUBANNOTATION_DIRECTIVE||LA21_8==FIELD_DIRECTIVE||(LA21_8 >= FLOAT_LITERAL_OR_ID && LA21_8 <= IMPLEMENTS_DIRECTIVE)||(LA21_8 >= INSTRUCTION_FORMAT10t && LA21_8 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_8==INSTRUCTION_FORMAT11x||LA21_8==INSTRUCTION_FORMAT12x_OR_ID||(LA21_8 >= INSTRUCTION_FORMAT21c_FIELD && LA21_8 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_8==INSTRUCTION_FORMAT21t||(LA21_8 >= INSTRUCTION_FORMAT22c_FIELD && LA21_8 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_8 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_8 <= INSTRUCTION_FORMAT22t)||LA21_8==INSTRUCTION_FORMAT23x||(LA21_8 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_8 <= INSTRUCTION_FORMAT31t)||(LA21_8 >= INSTRUCTION_FORMAT35c_METHOD && LA21_8 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_8 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_8 <= INSTRUCTION_FORMAT51l)||(LA21_8 >= METHOD_DIRECTIVE && LA21_8 <= NULL_LITERAL)||(LA21_8 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_8 <= PRIMITIVE_TYPE)||LA21_8==REGISTER||(LA21_8 >= SIMPLE_NAME && LA21_8 <= SOURCE_DIRECTIVE)||(LA21_8 >= SUPER_DIRECTIVE && LA21_8 <= VOID_TYPE)) ) { 4979 alt21=6; 4980 } 4981 else if ( (LA21_8==COLON||LA21_8==OPEN_PAREN) ) { 4982 alt21=13; 4983 } 4984 4985 else { 4986 int nvaeMark = input.mark(); 4987 try { 4988 input.consume(); 4989 NoViableAltException nvae = 4990 new NoViableAltException("", 21, 8, input); 4991 throw nvae; 4992 } finally { 4993 input.rewind(nvaeMark); 4994 } 4995 } 4996 4997 } 4998 break; 4999 case DOUBLE_LITERAL: 5000 { 5001 alt21=6; 5002 } 5003 break; 5004 case CHAR_LITERAL: 5005 { 5006 alt21=7; 5007 } 5008 break; 5009 case STRING_LITERAL: 5010 { 5011 alt21=8; 5012 } 5013 break; 5014 case BOOL_LITERAL: 5015 { 5016 int LA21_12 = input.LA(2); 5017 if ( (LA21_12==EOF||(LA21_12 >= ACCESS_SPEC && LA21_12 <= ANNOTATION_VISIBILITY)||LA21_12==BOOL_LITERAL||(LA21_12 >= CLASS_DIRECTIVE && LA21_12 <= CLOSE_BRACE)||LA21_12==COMMA||(LA21_12 >= DOUBLE_LITERAL_OR_ID && LA21_12 <= END_ANNOTATION_DIRECTIVE)||LA21_12==END_FIELD_DIRECTIVE||LA21_12==END_SUBANNOTATION_DIRECTIVE||LA21_12==FIELD_DIRECTIVE||(LA21_12 >= FLOAT_LITERAL_OR_ID && LA21_12 <= IMPLEMENTS_DIRECTIVE)||(LA21_12 >= INSTRUCTION_FORMAT10t && LA21_12 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_12==INSTRUCTION_FORMAT11x||LA21_12==INSTRUCTION_FORMAT12x_OR_ID||(LA21_12 >= INSTRUCTION_FORMAT21c_FIELD && LA21_12 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_12==INSTRUCTION_FORMAT21t||(LA21_12 >= INSTRUCTION_FORMAT22c_FIELD && LA21_12 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_12 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_12 <= INSTRUCTION_FORMAT22t)||LA21_12==INSTRUCTION_FORMAT23x||(LA21_12 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_12 <= INSTRUCTION_FORMAT31t)||(LA21_12 >= INSTRUCTION_FORMAT35c_METHOD && LA21_12 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_12 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_12 <= INSTRUCTION_FORMAT51l)||(LA21_12 >= METHOD_DIRECTIVE && LA21_12 <= NULL_LITERAL)||(LA21_12 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_12 <= PRIMITIVE_TYPE)||LA21_12==REGISTER||(LA21_12 >= SIMPLE_NAME && LA21_12 <= SOURCE_DIRECTIVE)||(LA21_12 >= SUPER_DIRECTIVE && LA21_12 <= VOID_TYPE)) ) { 5018 alt21=9; 5019 } 5020 else if ( (LA21_12==COLON||LA21_12==OPEN_PAREN) ) { 5021 alt21=13; 5022 } 5023 5024 else { 5025 int nvaeMark = input.mark(); 5026 try { 5027 input.consume(); 5028 NoViableAltException nvae = 5029 new NoViableAltException("", 21, 12, input); 5030 throw nvae; 5031 } finally { 5032 input.rewind(nvaeMark); 5033 } 5034 } 5035 5036 } 5037 break; 5038 case NULL_LITERAL: 5039 { 5040 int LA21_13 = input.LA(2); 5041 if ( (LA21_13==EOF||(LA21_13 >= ACCESS_SPEC && LA21_13 <= ANNOTATION_VISIBILITY)||LA21_13==BOOL_LITERAL||(LA21_13 >= CLASS_DIRECTIVE && LA21_13 <= CLOSE_BRACE)||LA21_13==COMMA||(LA21_13 >= DOUBLE_LITERAL_OR_ID && LA21_13 <= END_ANNOTATION_DIRECTIVE)||LA21_13==END_FIELD_DIRECTIVE||LA21_13==END_SUBANNOTATION_DIRECTIVE||LA21_13==FIELD_DIRECTIVE||(LA21_13 >= FLOAT_LITERAL_OR_ID && LA21_13 <= IMPLEMENTS_DIRECTIVE)||(LA21_13 >= INSTRUCTION_FORMAT10t && LA21_13 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_13==INSTRUCTION_FORMAT11x||LA21_13==INSTRUCTION_FORMAT12x_OR_ID||(LA21_13 >= INSTRUCTION_FORMAT21c_FIELD && LA21_13 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_13==INSTRUCTION_FORMAT21t||(LA21_13 >= INSTRUCTION_FORMAT22c_FIELD && LA21_13 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_13 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_13 <= INSTRUCTION_FORMAT22t)||LA21_13==INSTRUCTION_FORMAT23x||(LA21_13 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_13 <= INSTRUCTION_FORMAT31t)||(LA21_13 >= INSTRUCTION_FORMAT35c_METHOD && LA21_13 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_13 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_13 <= INSTRUCTION_FORMAT51l)||(LA21_13 >= METHOD_DIRECTIVE && LA21_13 <= NULL_LITERAL)||(LA21_13 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_13 <= PRIMITIVE_TYPE)||LA21_13==REGISTER||(LA21_13 >= SIMPLE_NAME && LA21_13 <= SOURCE_DIRECTIVE)||(LA21_13 >= SUPER_DIRECTIVE && LA21_13 <= VOID_TYPE)) ) { 5042 alt21=10; 5043 } 5044 else if ( (LA21_13==COLON||LA21_13==OPEN_PAREN) ) { 5045 alt21=13; 5046 } 5047 5048 else { 5049 int nvaeMark = input.mark(); 5050 try { 5051 input.consume(); 5052 NoViableAltException nvae = 5053 new NoViableAltException("", 21, 13, input); 5054 throw nvae; 5055 } finally { 5056 input.rewind(nvaeMark); 5057 } 5058 } 5059 5060 } 5061 break; 5062 case OPEN_BRACE: 5063 { 5064 alt21=11; 5065 } 5066 break; 5067 case SUBANNOTATION_DIRECTIVE: 5068 { 5069 alt21=12; 5070 } 5071 break; 5072 case ACCESS_SPEC: 5073 case ANNOTATION_VISIBILITY: 5074 case ARRAY_TYPE_PREFIX: 5075 case CLASS_DESCRIPTOR: 5076 case INSTRUCTION_FORMAT10t: 5077 case INSTRUCTION_FORMAT10x: 5078 case INSTRUCTION_FORMAT10x_ODEX: 5079 case INSTRUCTION_FORMAT11x: 5080 case INSTRUCTION_FORMAT12x_OR_ID: 5081 case INSTRUCTION_FORMAT21c_FIELD: 5082 case INSTRUCTION_FORMAT21c_FIELD_ODEX: 5083 case INSTRUCTION_FORMAT21c_STRING: 5084 case INSTRUCTION_FORMAT21c_TYPE: 5085 case INSTRUCTION_FORMAT21t: 5086 case INSTRUCTION_FORMAT22c_FIELD: 5087 case INSTRUCTION_FORMAT22c_FIELD_ODEX: 5088 case INSTRUCTION_FORMAT22c_TYPE: 5089 case INSTRUCTION_FORMAT22cs_FIELD: 5090 case INSTRUCTION_FORMAT22s_OR_ID: 5091 case INSTRUCTION_FORMAT22t: 5092 case INSTRUCTION_FORMAT23x: 5093 case INSTRUCTION_FORMAT31i_OR_ID: 5094 case INSTRUCTION_FORMAT31t: 5095 case INSTRUCTION_FORMAT35c_METHOD: 5096 case INSTRUCTION_FORMAT35c_METHOD_ODEX: 5097 case INSTRUCTION_FORMAT35c_TYPE: 5098 case INSTRUCTION_FORMAT35mi_METHOD: 5099 case INSTRUCTION_FORMAT35ms_METHOD: 5100 case INSTRUCTION_FORMAT45cc_METHOD: 5101 case INSTRUCTION_FORMAT4rcc_METHOD: 5102 case INSTRUCTION_FORMAT51l: 5103 case MEMBER_NAME: 5104 case PARAM_LIST_OR_ID_PRIMITIVE_TYPE: 5105 case PRIMITIVE_TYPE: 5106 case REGISTER: 5107 case SIMPLE_NAME: 5108 case VERIFICATION_ERROR_TYPE: 5109 case VOID_TYPE: 5110 { 5111 alt21=13; 5112 } 5113 break; 5114 case ENUM_DIRECTIVE: 5115 { 5116 alt21=14; 5117 } 5118 break; 5119 default: 5120 NoViableAltException nvae = 5121 new NoViableAltException("", 21, 0, input); 5122 throw nvae; 5123 } 5124 switch (alt21) { 5125 case 1 : 5126 // smaliParser.g:626:5: LONG_LITERAL 5127 { 5128 root_0 = (CommonTree)adaptor.nil(); 5129 5130 5131 LONG_LITERAL111=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_literal2468); 5132 LONG_LITERAL111_tree = (CommonTree)adaptor.create(LONG_LITERAL111); 5133 adaptor.addChild(root_0, LONG_LITERAL111_tree); 5134 5135 } 5136 break; 5137 case 2 : 5138 // smaliParser.g:627:5: integer_literal 5139 { 5140 root_0 = (CommonTree)adaptor.nil(); 5141 5142 5143 pushFollow(FOLLOW_integer_literal_in_literal2474); 5144 integer_literal112=integer_literal(); 5145 state._fsp--; 5146 5147 adaptor.addChild(root_0, integer_literal112.getTree()); 5148 5149 } 5150 break; 5151 case 3 : 5152 // smaliParser.g:628:5: SHORT_LITERAL 5153 { 5154 root_0 = (CommonTree)adaptor.nil(); 5155 5156 5157 SHORT_LITERAL113=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_literal2480); 5158 SHORT_LITERAL113_tree = (CommonTree)adaptor.create(SHORT_LITERAL113); 5159 adaptor.addChild(root_0, SHORT_LITERAL113_tree); 5160 5161 } 5162 break; 5163 case 4 : 5164 // smaliParser.g:629:5: BYTE_LITERAL 5165 { 5166 root_0 = (CommonTree)adaptor.nil(); 5167 5168 5169 BYTE_LITERAL114=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_literal2486); 5170 BYTE_LITERAL114_tree = (CommonTree)adaptor.create(BYTE_LITERAL114); 5171 adaptor.addChild(root_0, BYTE_LITERAL114_tree); 5172 5173 } 5174 break; 5175 case 5 : 5176 // smaliParser.g:630:5: float_literal 5177 { 5178 root_0 = (CommonTree)adaptor.nil(); 5179 5180 5181 pushFollow(FOLLOW_float_literal_in_literal2492); 5182 float_literal115=float_literal(); 5183 state._fsp--; 5184 5185 adaptor.addChild(root_0, float_literal115.getTree()); 5186 5187 } 5188 break; 5189 case 6 : 5190 // smaliParser.g:631:5: double_literal 5191 { 5192 root_0 = (CommonTree)adaptor.nil(); 5193 5194 5195 pushFollow(FOLLOW_double_literal_in_literal2498); 5196 double_literal116=double_literal(); 5197 state._fsp--; 5198 5199 adaptor.addChild(root_0, double_literal116.getTree()); 5200 5201 } 5202 break; 5203 case 7 : 5204 // smaliParser.g:632:5: CHAR_LITERAL 5205 { 5206 root_0 = (CommonTree)adaptor.nil(); 5207 5208 5209 CHAR_LITERAL117=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_literal2504); 5210 CHAR_LITERAL117_tree = (CommonTree)adaptor.create(CHAR_LITERAL117); 5211 adaptor.addChild(root_0, CHAR_LITERAL117_tree); 5212 5213 } 5214 break; 5215 case 8 : 5216 // smaliParser.g:633:5: STRING_LITERAL 5217 { 5218 root_0 = (CommonTree)adaptor.nil(); 5219 5220 5221 STRING_LITERAL118=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_literal2510); 5222 STRING_LITERAL118_tree = (CommonTree)adaptor.create(STRING_LITERAL118); 5223 adaptor.addChild(root_0, STRING_LITERAL118_tree); 5224 5225 } 5226 break; 5227 case 9 : 5228 // smaliParser.g:634:5: BOOL_LITERAL 5229 { 5230 root_0 = (CommonTree)adaptor.nil(); 5231 5232 5233 BOOL_LITERAL119=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_literal2516); 5234 BOOL_LITERAL119_tree = (CommonTree)adaptor.create(BOOL_LITERAL119); 5235 adaptor.addChild(root_0, BOOL_LITERAL119_tree); 5236 5237 } 5238 break; 5239 case 10 : 5240 // smaliParser.g:635:5: NULL_LITERAL 5241 { 5242 root_0 = (CommonTree)adaptor.nil(); 5243 5244 5245 NULL_LITERAL120=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_literal2522); 5246 NULL_LITERAL120_tree = (CommonTree)adaptor.create(NULL_LITERAL120); 5247 adaptor.addChild(root_0, NULL_LITERAL120_tree); 5248 5249 } 5250 break; 5251 case 11 : 5252 // smaliParser.g:636:5: array_literal 5253 { 5254 root_0 = (CommonTree)adaptor.nil(); 5255 5256 5257 pushFollow(FOLLOW_array_literal_in_literal2528); 5258 array_literal121=array_literal(); 5259 state._fsp--; 5260 5261 adaptor.addChild(root_0, array_literal121.getTree()); 5262 5263 } 5264 break; 5265 case 12 : 5266 // smaliParser.g:637:5: subannotation 5267 { 5268 root_0 = (CommonTree)adaptor.nil(); 5269 5270 5271 pushFollow(FOLLOW_subannotation_in_literal2534); 5272 subannotation122=subannotation(); 5273 state._fsp--; 5274 5275 adaptor.addChild(root_0, subannotation122.getTree()); 5276 5277 } 5278 break; 5279 case 13 : 5280 // smaliParser.g:638:5: type_field_method_literal 5281 { 5282 root_0 = (CommonTree)adaptor.nil(); 5283 5284 5285 pushFollow(FOLLOW_type_field_method_literal_in_literal2540); 5286 type_field_method_literal123=type_field_method_literal(); 5287 state._fsp--; 5288 5289 adaptor.addChild(root_0, type_field_method_literal123.getTree()); 5290 5291 } 5292 break; 5293 case 14 : 5294 // smaliParser.g:639:5: enum_literal 5295 { 5296 root_0 = (CommonTree)adaptor.nil(); 5297 5298 5299 pushFollow(FOLLOW_enum_literal_in_literal2546); 5300 enum_literal124=enum_literal(); 5301 state._fsp--; 5302 5303 adaptor.addChild(root_0, enum_literal124.getTree()); 5304 5305 } 5306 break; 5307 5308 } 5309 retval.stop = input.LT(-1); 5310 5311 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 5312 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 5313 5314 } 5315 catch (RecognitionException re) { 5316 reportError(re); 5317 recover(input,re); 5318 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 5319 } 5320 finally { 5321 // do for sure before leaving 5322 } 5323 return retval; 5324 } 5325 // $ANTLR end "literal" 5326 5327 5328 public static class parsed_integer_literal_return extends ParserRuleReturnScope { 5329 public int value; 5330 CommonTree tree; 5331 @Override 5332 public CommonTree getTree() { return tree; } 5333 }; 5334 5335 5336 // $ANTLR start "parsed_integer_literal" 5337 // smaliParser.g:641:1: parsed_integer_literal returns [int value] : integer_literal ; 5338 public final smaliParser.parsed_integer_literal_return parsed_integer_literal() throws RecognitionException { 5339 smaliParser.parsed_integer_literal_return retval = new smaliParser.parsed_integer_literal_return(); 5340 retval.start = input.LT(1); 5341 5342 CommonTree root_0 = null; 5343 5344 ParserRuleReturnScope integer_literal125 =null; 5345 5346 5347 try { 5348 // smaliParser.g:642:3: ( integer_literal ) 5349 // smaliParser.g:642:5: integer_literal 5350 { 5351 root_0 = (CommonTree)adaptor.nil(); 5352 5353 5354 pushFollow(FOLLOW_integer_literal_in_parsed_integer_literal2559); 5355 integer_literal125=integer_literal(); 5356 state._fsp--; 5357 5358 adaptor.addChild(root_0, integer_literal125.getTree()); 5359 5360 retval.value = LiteralTools.parseInt((integer_literal125!=null?input.toString(integer_literal125.start,integer_literal125.stop):null)); 5361 } 5362 5363 retval.stop = input.LT(-1); 5364 5365 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 5366 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 5367 5368 } 5369 catch (RecognitionException re) { 5370 reportError(re); 5371 recover(input,re); 5372 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 5373 } 5374 finally { 5375 // do for sure before leaving 5376 } 5377 return retval; 5378 } 5379 // $ANTLR end "parsed_integer_literal" 5380 5381 5382 public static class integral_literal_return extends ParserRuleReturnScope { 5383 CommonTree tree; 5384 @Override 5385 public CommonTree getTree() { return tree; } 5386 }; 5387 5388 5389 // $ANTLR start "integral_literal" 5390 // smaliParser.g:644:1: integral_literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | CHAR_LITERAL | BYTE_LITERAL ); 5391 public final smaliParser.integral_literal_return integral_literal() throws RecognitionException { 5392 smaliParser.integral_literal_return retval = new smaliParser.integral_literal_return(); 5393 retval.start = input.LT(1); 5394 5395 CommonTree root_0 = null; 5396 5397 Token LONG_LITERAL126=null; 5398 Token SHORT_LITERAL128=null; 5399 Token CHAR_LITERAL129=null; 5400 Token BYTE_LITERAL130=null; 5401 ParserRuleReturnScope integer_literal127 =null; 5402 5403 CommonTree LONG_LITERAL126_tree=null; 5404 CommonTree SHORT_LITERAL128_tree=null; 5405 CommonTree CHAR_LITERAL129_tree=null; 5406 CommonTree BYTE_LITERAL130_tree=null; 5407 5408 try { 5409 // smaliParser.g:645:3: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | CHAR_LITERAL | BYTE_LITERAL ) 5410 int alt22=5; 5411 switch ( input.LA(1) ) { 5412 case LONG_LITERAL: 5413 { 5414 alt22=1; 5415 } 5416 break; 5417 case NEGATIVE_INTEGER_LITERAL: 5418 case POSITIVE_INTEGER_LITERAL: 5419 { 5420 alt22=2; 5421 } 5422 break; 5423 case SHORT_LITERAL: 5424 { 5425 alt22=3; 5426 } 5427 break; 5428 case CHAR_LITERAL: 5429 { 5430 alt22=4; 5431 } 5432 break; 5433 case BYTE_LITERAL: 5434 { 5435 alt22=5; 5436 } 5437 break; 5438 default: 5439 NoViableAltException nvae = 5440 new NoViableAltException("", 22, 0, input); 5441 throw nvae; 5442 } 5443 switch (alt22) { 5444 case 1 : 5445 // smaliParser.g:645:5: LONG_LITERAL 5446 { 5447 root_0 = (CommonTree)adaptor.nil(); 5448 5449 5450 LONG_LITERAL126=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_integral_literal2571); 5451 LONG_LITERAL126_tree = (CommonTree)adaptor.create(LONG_LITERAL126); 5452 adaptor.addChild(root_0, LONG_LITERAL126_tree); 5453 5454 } 5455 break; 5456 case 2 : 5457 // smaliParser.g:646:5: integer_literal 5458 { 5459 root_0 = (CommonTree)adaptor.nil(); 5460 5461 5462 pushFollow(FOLLOW_integer_literal_in_integral_literal2577); 5463 integer_literal127=integer_literal(); 5464 state._fsp--; 5465 5466 adaptor.addChild(root_0, integer_literal127.getTree()); 5467 5468 } 5469 break; 5470 case 3 : 5471 // smaliParser.g:647:5: SHORT_LITERAL 5472 { 5473 root_0 = (CommonTree)adaptor.nil(); 5474 5475 5476 SHORT_LITERAL128=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_integral_literal2583); 5477 SHORT_LITERAL128_tree = (CommonTree)adaptor.create(SHORT_LITERAL128); 5478 adaptor.addChild(root_0, SHORT_LITERAL128_tree); 5479 5480 } 5481 break; 5482 case 4 : 5483 // smaliParser.g:648:5: CHAR_LITERAL 5484 { 5485 root_0 = (CommonTree)adaptor.nil(); 5486 5487 5488 CHAR_LITERAL129=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_integral_literal2589); 5489 CHAR_LITERAL129_tree = (CommonTree)adaptor.create(CHAR_LITERAL129); 5490 adaptor.addChild(root_0, CHAR_LITERAL129_tree); 5491 5492 } 5493 break; 5494 case 5 : 5495 // smaliParser.g:649:5: BYTE_LITERAL 5496 { 5497 root_0 = (CommonTree)adaptor.nil(); 5498 5499 5500 BYTE_LITERAL130=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_integral_literal2595); 5501 BYTE_LITERAL130_tree = (CommonTree)adaptor.create(BYTE_LITERAL130); 5502 adaptor.addChild(root_0, BYTE_LITERAL130_tree); 5503 5504 } 5505 break; 5506 5507 } 5508 retval.stop = input.LT(-1); 5509 5510 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 5511 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 5512 5513 } 5514 catch (RecognitionException re) { 5515 reportError(re); 5516 recover(input,re); 5517 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 5518 } 5519 finally { 5520 // do for sure before leaving 5521 } 5522 return retval; 5523 } 5524 // $ANTLR end "integral_literal" 5525 5526 5527 public static class fixed_32bit_literal_return extends ParserRuleReturnScope { 5528 CommonTree tree; 5529 @Override 5530 public CommonTree getTree() { return tree; } 5531 }; 5532 5533 5534 // $ANTLR start "fixed_32bit_literal" 5535 // smaliParser.g:651:1: fixed_32bit_literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | CHAR_LITERAL | BOOL_LITERAL ); 5536 public final smaliParser.fixed_32bit_literal_return fixed_32bit_literal() throws RecognitionException { 5537 smaliParser.fixed_32bit_literal_return retval = new smaliParser.fixed_32bit_literal_return(); 5538 retval.start = input.LT(1); 5539 5540 CommonTree root_0 = null; 5541 5542 Token LONG_LITERAL131=null; 5543 Token SHORT_LITERAL133=null; 5544 Token BYTE_LITERAL134=null; 5545 Token CHAR_LITERAL136=null; 5546 Token BOOL_LITERAL137=null; 5547 ParserRuleReturnScope integer_literal132 =null; 5548 ParserRuleReturnScope float_literal135 =null; 5549 5550 CommonTree LONG_LITERAL131_tree=null; 5551 CommonTree SHORT_LITERAL133_tree=null; 5552 CommonTree BYTE_LITERAL134_tree=null; 5553 CommonTree CHAR_LITERAL136_tree=null; 5554 CommonTree BOOL_LITERAL137_tree=null; 5555 5556 try { 5557 // smaliParser.g:652:3: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | CHAR_LITERAL | BOOL_LITERAL ) 5558 int alt23=7; 5559 switch ( input.LA(1) ) { 5560 case LONG_LITERAL: 5561 { 5562 alt23=1; 5563 } 5564 break; 5565 case NEGATIVE_INTEGER_LITERAL: 5566 case POSITIVE_INTEGER_LITERAL: 5567 { 5568 alt23=2; 5569 } 5570 break; 5571 case SHORT_LITERAL: 5572 { 5573 alt23=3; 5574 } 5575 break; 5576 case BYTE_LITERAL: 5577 { 5578 alt23=4; 5579 } 5580 break; 5581 case FLOAT_LITERAL: 5582 case FLOAT_LITERAL_OR_ID: 5583 { 5584 alt23=5; 5585 } 5586 break; 5587 case CHAR_LITERAL: 5588 { 5589 alt23=6; 5590 } 5591 break; 5592 case BOOL_LITERAL: 5593 { 5594 alt23=7; 5595 } 5596 break; 5597 default: 5598 NoViableAltException nvae = 5599 new NoViableAltException("", 23, 0, input); 5600 throw nvae; 5601 } 5602 switch (alt23) { 5603 case 1 : 5604 // smaliParser.g:652:5: LONG_LITERAL 5605 { 5606 root_0 = (CommonTree)adaptor.nil(); 5607 5608 5609 LONG_LITERAL131=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_fixed_32bit_literal2605); 5610 LONG_LITERAL131_tree = (CommonTree)adaptor.create(LONG_LITERAL131); 5611 adaptor.addChild(root_0, LONG_LITERAL131_tree); 5612 5613 } 5614 break; 5615 case 2 : 5616 // smaliParser.g:653:5: integer_literal 5617 { 5618 root_0 = (CommonTree)adaptor.nil(); 5619 5620 5621 pushFollow(FOLLOW_integer_literal_in_fixed_32bit_literal2611); 5622 integer_literal132=integer_literal(); 5623 state._fsp--; 5624 5625 adaptor.addChild(root_0, integer_literal132.getTree()); 5626 5627 } 5628 break; 5629 case 3 : 5630 // smaliParser.g:654:5: SHORT_LITERAL 5631 { 5632 root_0 = (CommonTree)adaptor.nil(); 5633 5634 5635 SHORT_LITERAL133=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal2617); 5636 SHORT_LITERAL133_tree = (CommonTree)adaptor.create(SHORT_LITERAL133); 5637 adaptor.addChild(root_0, SHORT_LITERAL133_tree); 5638 5639 } 5640 break; 5641 case 4 : 5642 // smaliParser.g:655:5: BYTE_LITERAL 5643 { 5644 root_0 = (CommonTree)adaptor.nil(); 5645 5646 5647 BYTE_LITERAL134=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal2623); 5648 BYTE_LITERAL134_tree = (CommonTree)adaptor.create(BYTE_LITERAL134); 5649 adaptor.addChild(root_0, BYTE_LITERAL134_tree); 5650 5651 } 5652 break; 5653 case 5 : 5654 // smaliParser.g:656:5: float_literal 5655 { 5656 root_0 = (CommonTree)adaptor.nil(); 5657 5658 5659 pushFollow(FOLLOW_float_literal_in_fixed_32bit_literal2629); 5660 float_literal135=float_literal(); 5661 state._fsp--; 5662 5663 adaptor.addChild(root_0, float_literal135.getTree()); 5664 5665 } 5666 break; 5667 case 6 : 5668 // smaliParser.g:657:5: CHAR_LITERAL 5669 { 5670 root_0 = (CommonTree)adaptor.nil(); 5671 5672 5673 CHAR_LITERAL136=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal2635); 5674 CHAR_LITERAL136_tree = (CommonTree)adaptor.create(CHAR_LITERAL136); 5675 adaptor.addChild(root_0, CHAR_LITERAL136_tree); 5676 5677 } 5678 break; 5679 case 7 : 5680 // smaliParser.g:658:5: BOOL_LITERAL 5681 { 5682 root_0 = (CommonTree)adaptor.nil(); 5683 5684 5685 BOOL_LITERAL137=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal2641); 5686 BOOL_LITERAL137_tree = (CommonTree)adaptor.create(BOOL_LITERAL137); 5687 adaptor.addChild(root_0, BOOL_LITERAL137_tree); 5688 5689 } 5690 break; 5691 5692 } 5693 retval.stop = input.LT(-1); 5694 5695 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 5696 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 5697 5698 } 5699 catch (RecognitionException re) { 5700 reportError(re); 5701 recover(input,re); 5702 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 5703 } 5704 finally { 5705 // do for sure before leaving 5706 } 5707 return retval; 5708 } 5709 // $ANTLR end "fixed_32bit_literal" 5710 5711 5712 public static class fixed_literal_return extends ParserRuleReturnScope { 5713 CommonTree tree; 5714 @Override 5715 public CommonTree getTree() { return tree; } 5716 }; 5717 5718 5719 // $ANTLR start "fixed_literal" 5720 // smaliParser.g:660:1: fixed_literal : ( integer_literal | LONG_LITERAL | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | BOOL_LITERAL ); 5721 public final smaliParser.fixed_literal_return fixed_literal() throws RecognitionException { 5722 smaliParser.fixed_literal_return retval = new smaliParser.fixed_literal_return(); 5723 retval.start = input.LT(1); 5724 5725 CommonTree root_0 = null; 5726 5727 Token LONG_LITERAL139=null; 5728 Token SHORT_LITERAL140=null; 5729 Token BYTE_LITERAL141=null; 5730 Token CHAR_LITERAL144=null; 5731 Token BOOL_LITERAL145=null; 5732 ParserRuleReturnScope integer_literal138 =null; 5733 ParserRuleReturnScope float_literal142 =null; 5734 ParserRuleReturnScope double_literal143 =null; 5735 5736 CommonTree LONG_LITERAL139_tree=null; 5737 CommonTree SHORT_LITERAL140_tree=null; 5738 CommonTree BYTE_LITERAL141_tree=null; 5739 CommonTree CHAR_LITERAL144_tree=null; 5740 CommonTree BOOL_LITERAL145_tree=null; 5741 5742 try { 5743 // smaliParser.g:661:3: ( integer_literal | LONG_LITERAL | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | BOOL_LITERAL ) 5744 int alt24=8; 5745 switch ( input.LA(1) ) { 5746 case NEGATIVE_INTEGER_LITERAL: 5747 case POSITIVE_INTEGER_LITERAL: 5748 { 5749 alt24=1; 5750 } 5751 break; 5752 case LONG_LITERAL: 5753 { 5754 alt24=2; 5755 } 5756 break; 5757 case SHORT_LITERAL: 5758 { 5759 alt24=3; 5760 } 5761 break; 5762 case BYTE_LITERAL: 5763 { 5764 alt24=4; 5765 } 5766 break; 5767 case FLOAT_LITERAL: 5768 case FLOAT_LITERAL_OR_ID: 5769 { 5770 alt24=5; 5771 } 5772 break; 5773 case DOUBLE_LITERAL: 5774 case DOUBLE_LITERAL_OR_ID: 5775 { 5776 alt24=6; 5777 } 5778 break; 5779 case CHAR_LITERAL: 5780 { 5781 alt24=7; 5782 } 5783 break; 5784 case BOOL_LITERAL: 5785 { 5786 alt24=8; 5787 } 5788 break; 5789 default: 5790 NoViableAltException nvae = 5791 new NoViableAltException("", 24, 0, input); 5792 throw nvae; 5793 } 5794 switch (alt24) { 5795 case 1 : 5796 // smaliParser.g:661:5: integer_literal 5797 { 5798 root_0 = (CommonTree)adaptor.nil(); 5799 5800 5801 pushFollow(FOLLOW_integer_literal_in_fixed_literal2651); 5802 integer_literal138=integer_literal(); 5803 state._fsp--; 5804 5805 adaptor.addChild(root_0, integer_literal138.getTree()); 5806 5807 } 5808 break; 5809 case 2 : 5810 // smaliParser.g:662:5: LONG_LITERAL 5811 { 5812 root_0 = (CommonTree)adaptor.nil(); 5813 5814 5815 LONG_LITERAL139=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_fixed_literal2657); 5816 LONG_LITERAL139_tree = (CommonTree)adaptor.create(LONG_LITERAL139); 5817 adaptor.addChild(root_0, LONG_LITERAL139_tree); 5818 5819 } 5820 break; 5821 case 3 : 5822 // smaliParser.g:663:5: SHORT_LITERAL 5823 { 5824 root_0 = (CommonTree)adaptor.nil(); 5825 5826 5827 SHORT_LITERAL140=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_fixed_literal2663); 5828 SHORT_LITERAL140_tree = (CommonTree)adaptor.create(SHORT_LITERAL140); 5829 adaptor.addChild(root_0, SHORT_LITERAL140_tree); 5830 5831 } 5832 break; 5833 case 4 : 5834 // smaliParser.g:664:5: BYTE_LITERAL 5835 { 5836 root_0 = (CommonTree)adaptor.nil(); 5837 5838 5839 BYTE_LITERAL141=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_fixed_literal2669); 5840 BYTE_LITERAL141_tree = (CommonTree)adaptor.create(BYTE_LITERAL141); 5841 adaptor.addChild(root_0, BYTE_LITERAL141_tree); 5842 5843 } 5844 break; 5845 case 5 : 5846 // smaliParser.g:665:5: float_literal 5847 { 5848 root_0 = (CommonTree)adaptor.nil(); 5849 5850 5851 pushFollow(FOLLOW_float_literal_in_fixed_literal2675); 5852 float_literal142=float_literal(); 5853 state._fsp--; 5854 5855 adaptor.addChild(root_0, float_literal142.getTree()); 5856 5857 } 5858 break; 5859 case 6 : 5860 // smaliParser.g:666:5: double_literal 5861 { 5862 root_0 = (CommonTree)adaptor.nil(); 5863 5864 5865 pushFollow(FOLLOW_double_literal_in_fixed_literal2681); 5866 double_literal143=double_literal(); 5867 state._fsp--; 5868 5869 adaptor.addChild(root_0, double_literal143.getTree()); 5870 5871 } 5872 break; 5873 case 7 : 5874 // smaliParser.g:667:5: CHAR_LITERAL 5875 { 5876 root_0 = (CommonTree)adaptor.nil(); 5877 5878 5879 CHAR_LITERAL144=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_fixed_literal2687); 5880 CHAR_LITERAL144_tree = (CommonTree)adaptor.create(CHAR_LITERAL144); 5881 adaptor.addChild(root_0, CHAR_LITERAL144_tree); 5882 5883 } 5884 break; 5885 case 8 : 5886 // smaliParser.g:668:5: BOOL_LITERAL 5887 { 5888 root_0 = (CommonTree)adaptor.nil(); 5889 5890 5891 BOOL_LITERAL145=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_fixed_literal2693); 5892 BOOL_LITERAL145_tree = (CommonTree)adaptor.create(BOOL_LITERAL145); 5893 adaptor.addChild(root_0, BOOL_LITERAL145_tree); 5894 5895 } 5896 break; 5897 5898 } 5899 retval.stop = input.LT(-1); 5900 5901 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 5902 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 5903 5904 } 5905 catch (RecognitionException re) { 5906 reportError(re); 5907 recover(input,re); 5908 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 5909 } 5910 finally { 5911 // do for sure before leaving 5912 } 5913 return retval; 5914 } 5915 // $ANTLR end "fixed_literal" 5916 5917 5918 public static class array_literal_return extends ParserRuleReturnScope { 5919 CommonTree tree; 5920 @Override 5921 public CommonTree getTree() { return tree; } 5922 }; 5923 5924 5925 // $ANTLR start "array_literal" 5926 // smaliParser.g:670:1: array_literal : OPEN_BRACE ( literal ( COMMA literal )* |) CLOSE_BRACE -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) ; 5927 public final smaliParser.array_literal_return array_literal() throws RecognitionException { 5928 smaliParser.array_literal_return retval = new smaliParser.array_literal_return(); 5929 retval.start = input.LT(1); 5930 5931 CommonTree root_0 = null; 5932 5933 Token OPEN_BRACE146=null; 5934 Token COMMA148=null; 5935 Token CLOSE_BRACE150=null; 5936 ParserRuleReturnScope literal147 =null; 5937 ParserRuleReturnScope literal149 =null; 5938 5939 CommonTree OPEN_BRACE146_tree=null; 5940 CommonTree COMMA148_tree=null; 5941 CommonTree CLOSE_BRACE150_tree=null; 5942 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 5943 RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE"); 5944 RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE"); 5945 RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal"); 5946 5947 try { 5948 // smaliParser.g:671:3: ( OPEN_BRACE ( literal ( COMMA literal )* |) CLOSE_BRACE -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) ) 5949 // smaliParser.g:671:5: OPEN_BRACE ( literal ( COMMA literal )* |) CLOSE_BRACE 5950 { 5951 OPEN_BRACE146=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_array_literal2703); 5952 stream_OPEN_BRACE.add(OPEN_BRACE146); 5953 5954 // smaliParser.g:671:16: ( literal ( COMMA literal )* |) 5955 int alt26=2; 5956 int LA26_0 = input.LA(1); 5957 if ( (LA26_0==ACCESS_SPEC||LA26_0==ANNOTATION_VISIBILITY||LA26_0==ARRAY_TYPE_PREFIX||(LA26_0 >= BOOL_LITERAL && LA26_0 <= BYTE_LITERAL)||(LA26_0 >= CHAR_LITERAL && LA26_0 <= CLASS_DESCRIPTOR)||(LA26_0 >= DOUBLE_LITERAL && LA26_0 <= DOUBLE_LITERAL_OR_ID)||LA26_0==ENUM_DIRECTIVE||(LA26_0 >= FLOAT_LITERAL && LA26_0 <= FLOAT_LITERAL_OR_ID)||(LA26_0 >= INSTRUCTION_FORMAT10t && LA26_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA26_0==INSTRUCTION_FORMAT11x||LA26_0==INSTRUCTION_FORMAT12x_OR_ID||(LA26_0 >= INSTRUCTION_FORMAT21c_FIELD && LA26_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA26_0==INSTRUCTION_FORMAT21t||(LA26_0 >= INSTRUCTION_FORMAT22c_FIELD && LA26_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA26_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA26_0 <= INSTRUCTION_FORMAT22t)||LA26_0==INSTRUCTION_FORMAT23x||(LA26_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA26_0 <= INSTRUCTION_FORMAT31t)||(LA26_0 >= INSTRUCTION_FORMAT35c_METHOD && LA26_0 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA26_0 >= INSTRUCTION_FORMAT45cc_METHOD && LA26_0 <= INSTRUCTION_FORMAT51l)||(LA26_0 >= LONG_LITERAL && LA26_0 <= MEMBER_NAME)||(LA26_0 >= NEGATIVE_INTEGER_LITERAL && LA26_0 <= OPEN_BRACE)||(LA26_0 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA26_0 <= PRIMITIVE_TYPE)||LA26_0==REGISTER||(LA26_0 >= SHORT_LITERAL && LA26_0 <= SIMPLE_NAME)||(LA26_0 >= STRING_LITERAL && LA26_0 <= SUBANNOTATION_DIRECTIVE)||(LA26_0 >= VERIFICATION_ERROR_TYPE && LA26_0 <= VOID_TYPE)) ) { 5958 alt26=1; 5959 } 5960 else if ( (LA26_0==CLOSE_BRACE) ) { 5961 alt26=2; 5962 } 5963 5964 else { 5965 NoViableAltException nvae = 5966 new NoViableAltException("", 26, 0, input); 5967 throw nvae; 5968 } 5969 5970 switch (alt26) { 5971 case 1 : 5972 // smaliParser.g:671:17: literal ( COMMA literal )* 5973 { 5974 pushFollow(FOLLOW_literal_in_array_literal2706); 5975 literal147=literal(); 5976 state._fsp--; 5977 5978 stream_literal.add(literal147.getTree()); 5979 // smaliParser.g:671:25: ( COMMA literal )* 5980 loop25: 5981 while (true) { 5982 int alt25=2; 5983 int LA25_0 = input.LA(1); 5984 if ( (LA25_0==COMMA) ) { 5985 alt25=1; 5986 } 5987 5988 switch (alt25) { 5989 case 1 : 5990 // smaliParser.g:671:26: COMMA literal 5991 { 5992 COMMA148=(Token)match(input,COMMA,FOLLOW_COMMA_in_array_literal2709); 5993 stream_COMMA.add(COMMA148); 5994 5995 pushFollow(FOLLOW_literal_in_array_literal2711); 5996 literal149=literal(); 5997 state._fsp--; 5998 5999 stream_literal.add(literal149.getTree()); 6000 } 6001 break; 6002 6003 default : 6004 break loop25; 6005 } 6006 } 6007 6008 } 6009 break; 6010 case 2 : 6011 // smaliParser.g:671:44: 6012 { 6013 } 6014 break; 6015 6016 } 6017 6018 CLOSE_BRACE150=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_array_literal2719); 6019 stream_CLOSE_BRACE.add(CLOSE_BRACE150); 6020 6021 // AST REWRITE 6022 // elements: literal 6023 // token labels: 6024 // rule labels: retval 6025 // token list labels: 6026 // rule list labels: 6027 // wildcard labels: 6028 retval.tree = root_0; 6029 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 6030 6031 root_0 = (CommonTree)adaptor.nil(); 6032 // 672:5: -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) 6033 { 6034 // smaliParser.g:672:8: ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) 6035 { 6036 CommonTree root_1 = (CommonTree)adaptor.nil(); 6037 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_ARRAY, (retval.start), "I_ENCODED_ARRAY"), root_1); 6038 // smaliParser.g:672:53: ( literal )* 6039 while ( stream_literal.hasNext() ) { 6040 adaptor.addChild(root_1, stream_literal.nextTree()); 6041 } 6042 stream_literal.reset(); 6043 6044 adaptor.addChild(root_0, root_1); 6045 } 6046 6047 } 6048 6049 6050 retval.tree = root_0; 6051 6052 } 6053 6054 retval.stop = input.LT(-1); 6055 6056 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 6057 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 6058 6059 } 6060 catch (RecognitionException re) { 6061 reportError(re); 6062 recover(input,re); 6063 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 6064 } 6065 finally { 6066 // do for sure before leaving 6067 } 6068 return retval; 6069 } 6070 // $ANTLR end "array_literal" 6071 6072 6073 public static class annotation_element_return extends ParserRuleReturnScope { 6074 CommonTree tree; 6075 @Override 6076 public CommonTree getTree() { return tree; } 6077 }; 6078 6079 6080 // $ANTLR start "annotation_element" 6081 // smaliParser.g:674:1: annotation_element : simple_name EQUAL literal -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) ; 6082 public final smaliParser.annotation_element_return annotation_element() throws RecognitionException { 6083 smaliParser.annotation_element_return retval = new smaliParser.annotation_element_return(); 6084 retval.start = input.LT(1); 6085 6086 CommonTree root_0 = null; 6087 6088 Token EQUAL152=null; 6089 ParserRuleReturnScope simple_name151 =null; 6090 ParserRuleReturnScope literal153 =null; 6091 6092 CommonTree EQUAL152_tree=null; 6093 RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL"); 6094 RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); 6095 RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal"); 6096 6097 try { 6098 // smaliParser.g:675:3: ( simple_name EQUAL literal -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) ) 6099 // smaliParser.g:675:5: simple_name EQUAL literal 6100 { 6101 pushFollow(FOLLOW_simple_name_in_annotation_element2743); 6102 simple_name151=simple_name(); 6103 state._fsp--; 6104 6105 stream_simple_name.add(simple_name151.getTree()); 6106 EQUAL152=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_annotation_element2745); 6107 stream_EQUAL.add(EQUAL152); 6108 6109 pushFollow(FOLLOW_literal_in_annotation_element2747); 6110 literal153=literal(); 6111 state._fsp--; 6112 6113 stream_literal.add(literal153.getTree()); 6114 // AST REWRITE 6115 // elements: simple_name, literal 6116 // token labels: 6117 // rule labels: retval 6118 // token list labels: 6119 // rule list labels: 6120 // wildcard labels: 6121 retval.tree = root_0; 6122 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 6123 6124 root_0 = (CommonTree)adaptor.nil(); 6125 // 676:5: -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) 6126 { 6127 // smaliParser.g:676:8: ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) 6128 { 6129 CommonTree root_1 = (CommonTree)adaptor.nil(); 6130 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATION_ELEMENT, (retval.start), "I_ANNOTATION_ELEMENT"), root_1); 6131 adaptor.addChild(root_1, stream_simple_name.nextTree()); 6132 adaptor.addChild(root_1, stream_literal.nextTree()); 6133 adaptor.addChild(root_0, root_1); 6134 } 6135 6136 } 6137 6138 6139 retval.tree = root_0; 6140 6141 } 6142 6143 retval.stop = input.LT(-1); 6144 6145 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 6146 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 6147 6148 } 6149 catch (RecognitionException re) { 6150 reportError(re); 6151 recover(input,re); 6152 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 6153 } 6154 finally { 6155 // do for sure before leaving 6156 } 6157 return retval; 6158 } 6159 // $ANTLR end "annotation_element" 6160 6161 6162 public static class annotation_return extends ParserRuleReturnScope { 6163 CommonTree tree; 6164 @Override 6165 public CommonTree getTree() { return tree; } 6166 }; 6167 6168 6169 // $ANTLR start "annotation" 6170 // smaliParser.g:678:1: annotation : ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) ; 6171 public final smaliParser.annotation_return annotation() throws RecognitionException { 6172 smaliParser.annotation_return retval = new smaliParser.annotation_return(); 6173 retval.start = input.LT(1); 6174 6175 CommonTree root_0 = null; 6176 6177 Token ANNOTATION_DIRECTIVE154=null; 6178 Token ANNOTATION_VISIBILITY155=null; 6179 Token CLASS_DESCRIPTOR156=null; 6180 Token END_ANNOTATION_DIRECTIVE158=null; 6181 ParserRuleReturnScope annotation_element157 =null; 6182 6183 CommonTree ANNOTATION_DIRECTIVE154_tree=null; 6184 CommonTree ANNOTATION_VISIBILITY155_tree=null; 6185 CommonTree CLASS_DESCRIPTOR156_tree=null; 6186 CommonTree END_ANNOTATION_DIRECTIVE158_tree=null; 6187 RewriteRuleTokenStream stream_ANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_DIRECTIVE"); 6188 RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_VISIBILITY"); 6189 RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); 6190 RewriteRuleTokenStream stream_END_ANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_ANNOTATION_DIRECTIVE"); 6191 RewriteRuleSubtreeStream stream_annotation_element=new RewriteRuleSubtreeStream(adaptor,"rule annotation_element"); 6192 6193 try { 6194 // smaliParser.g:679:3: ( ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) ) 6195 // smaliParser.g:679:5: ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE 6196 { 6197 ANNOTATION_DIRECTIVE154=(Token)match(input,ANNOTATION_DIRECTIVE,FOLLOW_ANNOTATION_DIRECTIVE_in_annotation2772); 6198 stream_ANNOTATION_DIRECTIVE.add(ANNOTATION_DIRECTIVE154); 6199 6200 ANNOTATION_VISIBILITY155=(Token)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_annotation2774); 6201 stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY155); 6202 6203 CLASS_DESCRIPTOR156=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_annotation2776); 6204 stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR156); 6205 6206 // smaliParser.g:680:5: ( annotation_element )* 6207 loop27: 6208 while (true) { 6209 int alt27=2; 6210 int LA27_0 = input.LA(1); 6211 if ( (LA27_0==ACCESS_SPEC||LA27_0==ANNOTATION_VISIBILITY||LA27_0==BOOL_LITERAL||LA27_0==DOUBLE_LITERAL_OR_ID||LA27_0==FLOAT_LITERAL_OR_ID||(LA27_0 >= INSTRUCTION_FORMAT10t && LA27_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA27_0==INSTRUCTION_FORMAT11x||LA27_0==INSTRUCTION_FORMAT12x_OR_ID||(LA27_0 >= INSTRUCTION_FORMAT21c_FIELD && LA27_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA27_0==INSTRUCTION_FORMAT21t||(LA27_0 >= INSTRUCTION_FORMAT22c_FIELD && LA27_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA27_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA27_0 <= INSTRUCTION_FORMAT22t)||LA27_0==INSTRUCTION_FORMAT23x||(LA27_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA27_0 <= INSTRUCTION_FORMAT31t)||(LA27_0 >= INSTRUCTION_FORMAT35c_METHOD && LA27_0 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA27_0 >= INSTRUCTION_FORMAT45cc_METHOD && LA27_0 <= INSTRUCTION_FORMAT51l)||(LA27_0 >= NEGATIVE_INTEGER_LITERAL && LA27_0 <= NULL_LITERAL)||(LA27_0 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA27_0 <= PRIMITIVE_TYPE)||LA27_0==REGISTER||LA27_0==SIMPLE_NAME||(LA27_0 >= VERIFICATION_ERROR_TYPE && LA27_0 <= VOID_TYPE)) ) { 6212 alt27=1; 6213 } 6214 6215 switch (alt27) { 6216 case 1 : 6217 // smaliParser.g:680:5: annotation_element 6218 { 6219 pushFollow(FOLLOW_annotation_element_in_annotation2782); 6220 annotation_element157=annotation_element(); 6221 state._fsp--; 6222 6223 stream_annotation_element.add(annotation_element157.getTree()); 6224 } 6225 break; 6226 6227 default : 6228 break loop27; 6229 } 6230 } 6231 6232 END_ANNOTATION_DIRECTIVE158=(Token)match(input,END_ANNOTATION_DIRECTIVE,FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation2785); 6233 stream_END_ANNOTATION_DIRECTIVE.add(END_ANNOTATION_DIRECTIVE158); 6234 6235 // AST REWRITE 6236 // elements: CLASS_DESCRIPTOR, annotation_element, ANNOTATION_VISIBILITY 6237 // token labels: 6238 // rule labels: retval 6239 // token list labels: 6240 // rule list labels: 6241 // wildcard labels: 6242 retval.tree = root_0; 6243 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 6244 6245 root_0 = (CommonTree)adaptor.nil(); 6246 // 681:5: -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) 6247 { 6248 // smaliParser.g:681:8: ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) 6249 { 6250 CommonTree root_1 = (CommonTree)adaptor.nil(); 6251 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATION, (retval.start), "I_ANNOTATION"), root_1); 6252 adaptor.addChild(root_1, stream_ANNOTATION_VISIBILITY.nextNode()); 6253 // smaliParser.g:681:69: ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) 6254 { 6255 CommonTree root_2 = (CommonTree)adaptor.nil(); 6256 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUBANNOTATION, (retval.start), "I_SUBANNOTATION"), root_2); 6257 adaptor.addChild(root_2, stream_CLASS_DESCRIPTOR.nextNode()); 6258 // smaliParser.g:681:131: ( annotation_element )* 6259 while ( stream_annotation_element.hasNext() ) { 6260 adaptor.addChild(root_2, stream_annotation_element.nextTree()); 6261 } 6262 stream_annotation_element.reset(); 6263 6264 adaptor.addChild(root_1, root_2); 6265 } 6266 6267 adaptor.addChild(root_0, root_1); 6268 } 6269 6270 } 6271 6272 6273 retval.tree = root_0; 6274 6275 } 6276 6277 retval.stop = input.LT(-1); 6278 6279 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 6280 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 6281 6282 } 6283 catch (RecognitionException re) { 6284 reportError(re); 6285 recover(input,re); 6286 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 6287 } 6288 finally { 6289 // do for sure before leaving 6290 } 6291 return retval; 6292 } 6293 // $ANTLR end "annotation" 6294 6295 6296 public static class subannotation_return extends ParserRuleReturnScope { 6297 CommonTree tree; 6298 @Override 6299 public CommonTree getTree() { return tree; } 6300 }; 6301 6302 6303 // $ANTLR start "subannotation" 6304 // smaliParser.g:683:1: subannotation : SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ; 6305 public final smaliParser.subannotation_return subannotation() throws RecognitionException { 6306 smaliParser.subannotation_return retval = new smaliParser.subannotation_return(); 6307 retval.start = input.LT(1); 6308 6309 CommonTree root_0 = null; 6310 6311 Token SUBANNOTATION_DIRECTIVE159=null; 6312 Token CLASS_DESCRIPTOR160=null; 6313 Token END_SUBANNOTATION_DIRECTIVE162=null; 6314 ParserRuleReturnScope annotation_element161 =null; 6315 6316 CommonTree SUBANNOTATION_DIRECTIVE159_tree=null; 6317 CommonTree CLASS_DESCRIPTOR160_tree=null; 6318 CommonTree END_SUBANNOTATION_DIRECTIVE162_tree=null; 6319 RewriteRuleTokenStream stream_SUBANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SUBANNOTATION_DIRECTIVE"); 6320 RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); 6321 RewriteRuleTokenStream stream_END_SUBANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_SUBANNOTATION_DIRECTIVE"); 6322 RewriteRuleSubtreeStream stream_annotation_element=new RewriteRuleSubtreeStream(adaptor,"rule annotation_element"); 6323 6324 try { 6325 // smaliParser.g:684:3: ( SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) 6326 // smaliParser.g:684:5: SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE 6327 { 6328 SUBANNOTATION_DIRECTIVE159=(Token)match(input,SUBANNOTATION_DIRECTIVE,FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation2818); 6329 stream_SUBANNOTATION_DIRECTIVE.add(SUBANNOTATION_DIRECTIVE159); 6330 6331 CLASS_DESCRIPTOR160=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_subannotation2820); 6332 stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR160); 6333 6334 // smaliParser.g:684:46: ( annotation_element )* 6335 loop28: 6336 while (true) { 6337 int alt28=2; 6338 int LA28_0 = input.LA(1); 6339 if ( (LA28_0==ACCESS_SPEC||LA28_0==ANNOTATION_VISIBILITY||LA28_0==BOOL_LITERAL||LA28_0==DOUBLE_LITERAL_OR_ID||LA28_0==FLOAT_LITERAL_OR_ID||(LA28_0 >= INSTRUCTION_FORMAT10t && LA28_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA28_0==INSTRUCTION_FORMAT11x||LA28_0==INSTRUCTION_FORMAT12x_OR_ID||(LA28_0 >= INSTRUCTION_FORMAT21c_FIELD && LA28_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA28_0==INSTRUCTION_FORMAT21t||(LA28_0 >= INSTRUCTION_FORMAT22c_FIELD && LA28_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA28_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA28_0 <= INSTRUCTION_FORMAT22t)||LA28_0==INSTRUCTION_FORMAT23x||(LA28_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA28_0 <= INSTRUCTION_FORMAT31t)||(LA28_0 >= INSTRUCTION_FORMAT35c_METHOD && LA28_0 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA28_0 >= INSTRUCTION_FORMAT45cc_METHOD && LA28_0 <= INSTRUCTION_FORMAT51l)||(LA28_0 >= NEGATIVE_INTEGER_LITERAL && LA28_0 <= NULL_LITERAL)||(LA28_0 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA28_0 <= PRIMITIVE_TYPE)||LA28_0==REGISTER||LA28_0==SIMPLE_NAME||(LA28_0 >= VERIFICATION_ERROR_TYPE && LA28_0 <= VOID_TYPE)) ) { 6340 alt28=1; 6341 } 6342 6343 switch (alt28) { 6344 case 1 : 6345 // smaliParser.g:684:46: annotation_element 6346 { 6347 pushFollow(FOLLOW_annotation_element_in_subannotation2822); 6348 annotation_element161=annotation_element(); 6349 state._fsp--; 6350 6351 stream_annotation_element.add(annotation_element161.getTree()); 6352 } 6353 break; 6354 6355 default : 6356 break loop28; 6357 } 6358 } 6359 6360 END_SUBANNOTATION_DIRECTIVE162=(Token)match(input,END_SUBANNOTATION_DIRECTIVE,FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation2825); 6361 stream_END_SUBANNOTATION_DIRECTIVE.add(END_SUBANNOTATION_DIRECTIVE162); 6362 6363 // AST REWRITE 6364 // elements: CLASS_DESCRIPTOR, annotation_element 6365 // token labels: 6366 // rule labels: retval 6367 // token list labels: 6368 // rule list labels: 6369 // wildcard labels: 6370 retval.tree = root_0; 6371 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 6372 6373 root_0 = (CommonTree)adaptor.nil(); 6374 // 685:5: -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) 6375 { 6376 // smaliParser.g:685:8: ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) 6377 { 6378 CommonTree root_1 = (CommonTree)adaptor.nil(); 6379 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUBANNOTATION, (retval.start), "I_SUBANNOTATION"), root_1); 6380 adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode()); 6381 // smaliParser.g:685:70: ( annotation_element )* 6382 while ( stream_annotation_element.hasNext() ) { 6383 adaptor.addChild(root_1, stream_annotation_element.nextTree()); 6384 } 6385 stream_annotation_element.reset(); 6386 6387 adaptor.addChild(root_0, root_1); 6388 } 6389 6390 } 6391 6392 6393 retval.tree = root_0; 6394 6395 } 6396 6397 retval.stop = input.LT(-1); 6398 6399 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 6400 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 6401 6402 } 6403 catch (RecognitionException re) { 6404 reportError(re); 6405 recover(input,re); 6406 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 6407 } 6408 finally { 6409 // do for sure before leaving 6410 } 6411 return retval; 6412 } 6413 // $ANTLR end "subannotation" 6414 6415 6416 public static class enum_literal_return extends ParserRuleReturnScope { 6417 CommonTree tree; 6418 @Override 6419 public CommonTree getTree() { return tree; } 6420 }; 6421 6422 6423 // $ANTLR start "enum_literal" 6424 // smaliParser.g:688:1: enum_literal : ENUM_DIRECTIVE field_reference -> ^( I_ENCODED_ENUM field_reference ) ; 6425 public final smaliParser.enum_literal_return enum_literal() throws RecognitionException { 6426 smaliParser.enum_literal_return retval = new smaliParser.enum_literal_return(); 6427 retval.start = input.LT(1); 6428 6429 CommonTree root_0 = null; 6430 6431 Token ENUM_DIRECTIVE163=null; 6432 ParserRuleReturnScope field_reference164 =null; 6433 6434 CommonTree ENUM_DIRECTIVE163_tree=null; 6435 RewriteRuleTokenStream stream_ENUM_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ENUM_DIRECTIVE"); 6436 RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference"); 6437 6438 try { 6439 // smaliParser.g:689:3: ( ENUM_DIRECTIVE field_reference -> ^( I_ENCODED_ENUM field_reference ) ) 6440 // smaliParser.g:689:5: ENUM_DIRECTIVE field_reference 6441 { 6442 ENUM_DIRECTIVE163=(Token)match(input,ENUM_DIRECTIVE,FOLLOW_ENUM_DIRECTIVE_in_enum_literal2852); 6443 stream_ENUM_DIRECTIVE.add(ENUM_DIRECTIVE163); 6444 6445 pushFollow(FOLLOW_field_reference_in_enum_literal2854); 6446 field_reference164=field_reference(); 6447 state._fsp--; 6448 6449 stream_field_reference.add(field_reference164.getTree()); 6450 // AST REWRITE 6451 // elements: field_reference 6452 // token labels: 6453 // rule labels: retval 6454 // token list labels: 6455 // rule list labels: 6456 // wildcard labels: 6457 retval.tree = root_0; 6458 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 6459 6460 root_0 = (CommonTree)adaptor.nil(); 6461 // 690:3: -> ^( I_ENCODED_ENUM field_reference ) 6462 { 6463 // smaliParser.g:690:6: ^( I_ENCODED_ENUM field_reference ) 6464 { 6465 CommonTree root_1 = (CommonTree)adaptor.nil(); 6466 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_ENUM, "I_ENCODED_ENUM"), root_1); 6467 adaptor.addChild(root_1, stream_field_reference.nextTree()); 6468 adaptor.addChild(root_0, root_1); 6469 } 6470 6471 } 6472 6473 6474 retval.tree = root_0; 6475 6476 } 6477 6478 retval.stop = input.LT(-1); 6479 6480 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 6481 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 6482 6483 } 6484 catch (RecognitionException re) { 6485 reportError(re); 6486 recover(input,re); 6487 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 6488 } 6489 finally { 6490 // do for sure before leaving 6491 } 6492 return retval; 6493 } 6494 // $ANTLR end "enum_literal" 6495 6496 6497 public static class type_field_method_literal_return extends ParserRuleReturnScope { 6498 CommonTree tree; 6499 @Override 6500 public CommonTree getTree() { return tree; } 6501 }; 6502 6503 6504 // $ANTLR start "type_field_method_literal" 6505 // smaliParser.g:692:1: type_field_method_literal : ( reference_type_descriptor | ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) ) | PRIMITIVE_TYPE | VOID_TYPE ); 6506 public final smaliParser.type_field_method_literal_return type_field_method_literal() throws RecognitionException { 6507 smaliParser.type_field_method_literal_return retval = new smaliParser.type_field_method_literal_return(); 6508 retval.start = input.LT(1); 6509 6510 CommonTree root_0 = null; 6511 6512 Token ARROW167=null; 6513 Token COLON169=null; 6514 Token PRIMITIVE_TYPE173=null; 6515 Token VOID_TYPE174=null; 6516 ParserRuleReturnScope reference_type_descriptor165 =null; 6517 ParserRuleReturnScope reference_type_descriptor166 =null; 6518 ParserRuleReturnScope member_name168 =null; 6519 ParserRuleReturnScope nonvoid_type_descriptor170 =null; 6520 ParserRuleReturnScope member_name171 =null; 6521 ParserRuleReturnScope method_prototype172 =null; 6522 6523 CommonTree ARROW167_tree=null; 6524 CommonTree COLON169_tree=null; 6525 CommonTree PRIMITIVE_TYPE173_tree=null; 6526 CommonTree VOID_TYPE174_tree=null; 6527 RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW"); 6528 RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); 6529 RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype"); 6530 RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); 6531 RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name"); 6532 RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor"); 6533 6534 try { 6535 // smaliParser.g:693:3: ( reference_type_descriptor | ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) ) | PRIMITIVE_TYPE | VOID_TYPE ) 6536 int alt31=4; 6537 switch ( input.LA(1) ) { 6538 case CLASS_DESCRIPTOR: 6539 { 6540 int LA31_1 = input.LA(2); 6541 if ( (LA31_1==EOF||(LA31_1 >= ACCESS_SPEC && LA31_1 <= ANNOTATION_VISIBILITY)||LA31_1==BOOL_LITERAL||(LA31_1 >= CLASS_DIRECTIVE && LA31_1 <= CLOSE_BRACE)||LA31_1==COMMA||(LA31_1 >= DOUBLE_LITERAL_OR_ID && LA31_1 <= END_ANNOTATION_DIRECTIVE)||LA31_1==END_FIELD_DIRECTIVE||LA31_1==END_SUBANNOTATION_DIRECTIVE||LA31_1==FIELD_DIRECTIVE||(LA31_1 >= FLOAT_LITERAL_OR_ID && LA31_1 <= IMPLEMENTS_DIRECTIVE)||(LA31_1 >= INSTRUCTION_FORMAT10t && LA31_1 <= INSTRUCTION_FORMAT10x_ODEX)||LA31_1==INSTRUCTION_FORMAT11x||LA31_1==INSTRUCTION_FORMAT12x_OR_ID||(LA31_1 >= INSTRUCTION_FORMAT21c_FIELD && LA31_1 <= INSTRUCTION_FORMAT21c_TYPE)||LA31_1==INSTRUCTION_FORMAT21t||(LA31_1 >= INSTRUCTION_FORMAT22c_FIELD && LA31_1 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA31_1 >= INSTRUCTION_FORMAT22s_OR_ID && LA31_1 <= INSTRUCTION_FORMAT22t)||LA31_1==INSTRUCTION_FORMAT23x||(LA31_1 >= INSTRUCTION_FORMAT31i_OR_ID && LA31_1 <= INSTRUCTION_FORMAT31t)||(LA31_1 >= INSTRUCTION_FORMAT35c_METHOD && LA31_1 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA31_1 >= INSTRUCTION_FORMAT45cc_METHOD && LA31_1 <= INSTRUCTION_FORMAT51l)||(LA31_1 >= METHOD_DIRECTIVE && LA31_1 <= NULL_LITERAL)||(LA31_1 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA31_1 <= PRIMITIVE_TYPE)||LA31_1==REGISTER||(LA31_1 >= SIMPLE_NAME && LA31_1 <= SOURCE_DIRECTIVE)||(LA31_1 >= SUPER_DIRECTIVE && LA31_1 <= VOID_TYPE)) ) { 6542 alt31=1; 6543 } 6544 else if ( (LA31_1==ARROW) ) { 6545 alt31=2; 6546 } 6547 6548 else { 6549 int nvaeMark = input.mark(); 6550 try { 6551 input.consume(); 6552 NoViableAltException nvae = 6553 new NoViableAltException("", 31, 1, input); 6554 throw nvae; 6555 } finally { 6556 input.rewind(nvaeMark); 6557 } 6558 } 6559 6560 } 6561 break; 6562 case ARRAY_TYPE_PREFIX: 6563 { 6564 int LA31_2 = input.LA(2); 6565 if ( (LA31_2==CLASS_DESCRIPTOR||LA31_2==PRIMITIVE_TYPE) ) { 6566 int LA31_7 = input.LA(3); 6567 if ( (LA31_7==EOF||(LA31_7 >= ACCESS_SPEC && LA31_7 <= ANNOTATION_VISIBILITY)||LA31_7==BOOL_LITERAL||(LA31_7 >= CLASS_DIRECTIVE && LA31_7 <= CLOSE_BRACE)||LA31_7==COMMA||(LA31_7 >= DOUBLE_LITERAL_OR_ID && LA31_7 <= END_ANNOTATION_DIRECTIVE)||LA31_7==END_FIELD_DIRECTIVE||LA31_7==END_SUBANNOTATION_DIRECTIVE||LA31_7==FIELD_DIRECTIVE||(LA31_7 >= FLOAT_LITERAL_OR_ID && LA31_7 <= IMPLEMENTS_DIRECTIVE)||(LA31_7 >= INSTRUCTION_FORMAT10t && LA31_7 <= INSTRUCTION_FORMAT10x_ODEX)||LA31_7==INSTRUCTION_FORMAT11x||LA31_7==INSTRUCTION_FORMAT12x_OR_ID||(LA31_7 >= INSTRUCTION_FORMAT21c_FIELD && LA31_7 <= INSTRUCTION_FORMAT21c_TYPE)||LA31_7==INSTRUCTION_FORMAT21t||(LA31_7 >= INSTRUCTION_FORMAT22c_FIELD && LA31_7 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA31_7 >= INSTRUCTION_FORMAT22s_OR_ID && LA31_7 <= INSTRUCTION_FORMAT22t)||LA31_7==INSTRUCTION_FORMAT23x||(LA31_7 >= INSTRUCTION_FORMAT31i_OR_ID && LA31_7 <= INSTRUCTION_FORMAT31t)||(LA31_7 >= INSTRUCTION_FORMAT35c_METHOD && LA31_7 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA31_7 >= INSTRUCTION_FORMAT45cc_METHOD && LA31_7 <= INSTRUCTION_FORMAT51l)||(LA31_7 >= METHOD_DIRECTIVE && LA31_7 <= NULL_LITERAL)||(LA31_7 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA31_7 <= PRIMITIVE_TYPE)||LA31_7==REGISTER||(LA31_7 >= SIMPLE_NAME && LA31_7 <= SOURCE_DIRECTIVE)||(LA31_7 >= SUPER_DIRECTIVE && LA31_7 <= VOID_TYPE)) ) { 6568 alt31=1; 6569 } 6570 else if ( (LA31_7==ARROW) ) { 6571 alt31=2; 6572 } 6573 6574 else { 6575 int nvaeMark = input.mark(); 6576 try { 6577 for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) { 6578 input.consume(); 6579 } 6580 NoViableAltException nvae = 6581 new NoViableAltException("", 31, 7, input); 6582 throw nvae; 6583 } finally { 6584 input.rewind(nvaeMark); 6585 } 6586 } 6587 6588 } 6589 6590 else { 6591 int nvaeMark = input.mark(); 6592 try { 6593 input.consume(); 6594 NoViableAltException nvae = 6595 new NoViableAltException("", 31, 2, input); 6596 throw nvae; 6597 } finally { 6598 input.rewind(nvaeMark); 6599 } 6600 } 6601 6602 } 6603 break; 6604 case ACCESS_SPEC: 6605 case ANNOTATION_VISIBILITY: 6606 case BOOL_LITERAL: 6607 case DOUBLE_LITERAL_OR_ID: 6608 case FLOAT_LITERAL_OR_ID: 6609 case INSTRUCTION_FORMAT10t: 6610 case INSTRUCTION_FORMAT10x: 6611 case INSTRUCTION_FORMAT10x_ODEX: 6612 case INSTRUCTION_FORMAT11x: 6613 case INSTRUCTION_FORMAT12x_OR_ID: 6614 case INSTRUCTION_FORMAT21c_FIELD: 6615 case INSTRUCTION_FORMAT21c_FIELD_ODEX: 6616 case INSTRUCTION_FORMAT21c_STRING: 6617 case INSTRUCTION_FORMAT21c_TYPE: 6618 case INSTRUCTION_FORMAT21t: 6619 case INSTRUCTION_FORMAT22c_FIELD: 6620 case INSTRUCTION_FORMAT22c_FIELD_ODEX: 6621 case INSTRUCTION_FORMAT22c_TYPE: 6622 case INSTRUCTION_FORMAT22cs_FIELD: 6623 case INSTRUCTION_FORMAT22s_OR_ID: 6624 case INSTRUCTION_FORMAT22t: 6625 case INSTRUCTION_FORMAT23x: 6626 case INSTRUCTION_FORMAT31i_OR_ID: 6627 case INSTRUCTION_FORMAT31t: 6628 case INSTRUCTION_FORMAT35c_METHOD: 6629 case INSTRUCTION_FORMAT35c_METHOD_ODEX: 6630 case INSTRUCTION_FORMAT35c_TYPE: 6631 case INSTRUCTION_FORMAT35mi_METHOD: 6632 case INSTRUCTION_FORMAT35ms_METHOD: 6633 case INSTRUCTION_FORMAT45cc_METHOD: 6634 case INSTRUCTION_FORMAT4rcc_METHOD: 6635 case INSTRUCTION_FORMAT51l: 6636 case MEMBER_NAME: 6637 case NEGATIVE_INTEGER_LITERAL: 6638 case NULL_LITERAL: 6639 case PARAM_LIST_OR_ID_PRIMITIVE_TYPE: 6640 case POSITIVE_INTEGER_LITERAL: 6641 case REGISTER: 6642 case SIMPLE_NAME: 6643 case VERIFICATION_ERROR_TYPE: 6644 { 6645 alt31=2; 6646 } 6647 break; 6648 case PRIMITIVE_TYPE: 6649 { 6650 int LA31_4 = input.LA(2); 6651 if ( (LA31_4==COLON||LA31_4==OPEN_PAREN) ) { 6652 alt31=2; 6653 } 6654 else if ( (LA31_4==EOF||(LA31_4 >= ACCESS_SPEC && LA31_4 <= ANNOTATION_VISIBILITY)||LA31_4==BOOL_LITERAL||(LA31_4 >= CLASS_DIRECTIVE && LA31_4 <= CLOSE_BRACE)||LA31_4==COMMA||(LA31_4 >= DOUBLE_LITERAL_OR_ID && LA31_4 <= END_ANNOTATION_DIRECTIVE)||LA31_4==END_FIELD_DIRECTIVE||LA31_4==END_SUBANNOTATION_DIRECTIVE||LA31_4==FIELD_DIRECTIVE||(LA31_4 >= FLOAT_LITERAL_OR_ID && LA31_4 <= IMPLEMENTS_DIRECTIVE)||(LA31_4 >= INSTRUCTION_FORMAT10t && LA31_4 <= INSTRUCTION_FORMAT10x_ODEX)||LA31_4==INSTRUCTION_FORMAT11x||LA31_4==INSTRUCTION_FORMAT12x_OR_ID||(LA31_4 >= INSTRUCTION_FORMAT21c_FIELD && LA31_4 <= INSTRUCTION_FORMAT21c_TYPE)||LA31_4==INSTRUCTION_FORMAT21t||(LA31_4 >= INSTRUCTION_FORMAT22c_FIELD && LA31_4 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA31_4 >= INSTRUCTION_FORMAT22s_OR_ID && LA31_4 <= INSTRUCTION_FORMAT22t)||LA31_4==INSTRUCTION_FORMAT23x||(LA31_4 >= INSTRUCTION_FORMAT31i_OR_ID && LA31_4 <= INSTRUCTION_FORMAT31t)||(LA31_4 >= INSTRUCTION_FORMAT35c_METHOD && LA31_4 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA31_4 >= INSTRUCTION_FORMAT45cc_METHOD && LA31_4 <= INSTRUCTION_FORMAT51l)||(LA31_4 >= METHOD_DIRECTIVE && LA31_4 <= NULL_LITERAL)||(LA31_4 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA31_4 <= PRIMITIVE_TYPE)||LA31_4==REGISTER||(LA31_4 >= SIMPLE_NAME && LA31_4 <= SOURCE_DIRECTIVE)||(LA31_4 >= SUPER_DIRECTIVE && LA31_4 <= VOID_TYPE)) ) { 6655 alt31=3; 6656 } 6657 6658 else { 6659 int nvaeMark = input.mark(); 6660 try { 6661 input.consume(); 6662 NoViableAltException nvae = 6663 new NoViableAltException("", 31, 4, input); 6664 throw nvae; 6665 } finally { 6666 input.rewind(nvaeMark); 6667 } 6668 } 6669 6670 } 6671 break; 6672 case VOID_TYPE: 6673 { 6674 int LA31_5 = input.LA(2); 6675 if ( (LA31_5==COLON||LA31_5==OPEN_PAREN) ) { 6676 alt31=2; 6677 } 6678 else if ( (LA31_5==EOF||(LA31_5 >= ACCESS_SPEC && LA31_5 <= ANNOTATION_VISIBILITY)||LA31_5==BOOL_LITERAL||(LA31_5 >= CLASS_DIRECTIVE && LA31_5 <= CLOSE_BRACE)||LA31_5==COMMA||(LA31_5 >= DOUBLE_LITERAL_OR_ID && LA31_5 <= END_ANNOTATION_DIRECTIVE)||LA31_5==END_FIELD_DIRECTIVE||LA31_5==END_SUBANNOTATION_DIRECTIVE||LA31_5==FIELD_DIRECTIVE||(LA31_5 >= FLOAT_LITERAL_OR_ID && LA31_5 <= IMPLEMENTS_DIRECTIVE)||(LA31_5 >= INSTRUCTION_FORMAT10t && LA31_5 <= INSTRUCTION_FORMAT10x_ODEX)||LA31_5==INSTRUCTION_FORMAT11x||LA31_5==INSTRUCTION_FORMAT12x_OR_ID||(LA31_5 >= INSTRUCTION_FORMAT21c_FIELD && LA31_5 <= INSTRUCTION_FORMAT21c_TYPE)||LA31_5==INSTRUCTION_FORMAT21t||(LA31_5 >= INSTRUCTION_FORMAT22c_FIELD && LA31_5 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA31_5 >= INSTRUCTION_FORMAT22s_OR_ID && LA31_5 <= INSTRUCTION_FORMAT22t)||LA31_5==INSTRUCTION_FORMAT23x||(LA31_5 >= INSTRUCTION_FORMAT31i_OR_ID && LA31_5 <= INSTRUCTION_FORMAT31t)||(LA31_5 >= INSTRUCTION_FORMAT35c_METHOD && LA31_5 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA31_5 >= INSTRUCTION_FORMAT45cc_METHOD && LA31_5 <= INSTRUCTION_FORMAT51l)||(LA31_5 >= METHOD_DIRECTIVE && LA31_5 <= NULL_LITERAL)||(LA31_5 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA31_5 <= PRIMITIVE_TYPE)||LA31_5==REGISTER||(LA31_5 >= SIMPLE_NAME && LA31_5 <= SOURCE_DIRECTIVE)||(LA31_5 >= SUPER_DIRECTIVE && LA31_5 <= VOID_TYPE)) ) { 6679 alt31=4; 6680 } 6681 6682 else { 6683 int nvaeMark = input.mark(); 6684 try { 6685 input.consume(); 6686 NoViableAltException nvae = 6687 new NoViableAltException("", 31, 5, input); 6688 throw nvae; 6689 } finally { 6690 input.rewind(nvaeMark); 6691 } 6692 } 6693 6694 } 6695 break; 6696 default: 6697 NoViableAltException nvae = 6698 new NoViableAltException("", 31, 0, input); 6699 throw nvae; 6700 } 6701 switch (alt31) { 6702 case 1 : 6703 // smaliParser.g:693:5: reference_type_descriptor 6704 { 6705 root_0 = (CommonTree)adaptor.nil(); 6706 6707 6708 pushFollow(FOLLOW_reference_type_descriptor_in_type_field_method_literal2874); 6709 reference_type_descriptor165=reference_type_descriptor(); 6710 state._fsp--; 6711 6712 adaptor.addChild(root_0, reference_type_descriptor165.getTree()); 6713 6714 } 6715 break; 6716 case 2 : 6717 // smaliParser.g:694:5: ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) ) 6718 { 6719 // smaliParser.g:694:5: ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) ) 6720 // smaliParser.g:694:7: ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) 6721 { 6722 // smaliParser.g:694:7: ( reference_type_descriptor ARROW )? 6723 int alt29=2; 6724 int LA29_0 = input.LA(1); 6725 if ( (LA29_0==ARRAY_TYPE_PREFIX||LA29_0==CLASS_DESCRIPTOR) ) { 6726 alt29=1; 6727 } 6728 switch (alt29) { 6729 case 1 : 6730 // smaliParser.g:694:8: reference_type_descriptor ARROW 6731 { 6732 pushFollow(FOLLOW_reference_type_descriptor_in_type_field_method_literal2883); 6733 reference_type_descriptor166=reference_type_descriptor(); 6734 state._fsp--; 6735 6736 stream_reference_type_descriptor.add(reference_type_descriptor166.getTree()); 6737 ARROW167=(Token)match(input,ARROW,FOLLOW_ARROW_in_type_field_method_literal2885); 6738 stream_ARROW.add(ARROW167); 6739 6740 } 6741 break; 6742 6743 } 6744 6745 // smaliParser.g:695:7: ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) 6746 int alt30=2; 6747 alt30 = dfa30.predict(input); 6748 switch (alt30) { 6749 case 1 : 6750 // smaliParser.g:695:9: member_name COLON nonvoid_type_descriptor 6751 { 6752 pushFollow(FOLLOW_member_name_in_type_field_method_literal2897); 6753 member_name168=member_name(); 6754 state._fsp--; 6755 6756 stream_member_name.add(member_name168.getTree()); 6757 COLON169=(Token)match(input,COLON,FOLLOW_COLON_in_type_field_method_literal2899); 6758 stream_COLON.add(COLON169); 6759 6760 pushFollow(FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal2901); 6761 nonvoid_type_descriptor170=nonvoid_type_descriptor(); 6762 state._fsp--; 6763 6764 stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor170.getTree()); 6765 // AST REWRITE 6766 // elements: reference_type_descriptor, member_name, nonvoid_type_descriptor 6767 // token labels: 6768 // rule labels: retval 6769 // token list labels: 6770 // rule list labels: 6771 // wildcard labels: 6772 retval.tree = root_0; 6773 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 6774 6775 root_0 = (CommonTree)adaptor.nil(); 6776 // 695:51: -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) 6777 { 6778 // smaliParser.g:695:54: ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) 6779 { 6780 CommonTree root_1 = (CommonTree)adaptor.nil(); 6781 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_FIELD, "I_ENCODED_FIELD"), root_1); 6782 // smaliParser.g:695:72: ( reference_type_descriptor )? 6783 if ( stream_reference_type_descriptor.hasNext() ) { 6784 adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree()); 6785 } 6786 stream_reference_type_descriptor.reset(); 6787 6788 adaptor.addChild(root_1, stream_member_name.nextTree()); 6789 adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); 6790 adaptor.addChild(root_0, root_1); 6791 } 6792 6793 } 6794 6795 6796 retval.tree = root_0; 6797 6798 } 6799 break; 6800 case 2 : 6801 // smaliParser.g:696:9: member_name method_prototype 6802 { 6803 pushFollow(FOLLOW_member_name_in_type_field_method_literal2924); 6804 member_name171=member_name(); 6805 state._fsp--; 6806 6807 stream_member_name.add(member_name171.getTree()); 6808 pushFollow(FOLLOW_method_prototype_in_type_field_method_literal2926); 6809 method_prototype172=method_prototype(); 6810 state._fsp--; 6811 6812 stream_method_prototype.add(method_prototype172.getTree()); 6813 // AST REWRITE 6814 // elements: member_name, method_prototype, reference_type_descriptor 6815 // token labels: 6816 // rule labels: retval 6817 // token list labels: 6818 // rule list labels: 6819 // wildcard labels: 6820 retval.tree = root_0; 6821 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 6822 6823 root_0 = (CommonTree)adaptor.nil(); 6824 // 696:38: -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) 6825 { 6826 // smaliParser.g:696:41: ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) 6827 { 6828 CommonTree root_1 = (CommonTree)adaptor.nil(); 6829 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_METHOD, "I_ENCODED_METHOD"), root_1); 6830 // smaliParser.g:696:60: ( reference_type_descriptor )? 6831 if ( stream_reference_type_descriptor.hasNext() ) { 6832 adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree()); 6833 } 6834 stream_reference_type_descriptor.reset(); 6835 6836 adaptor.addChild(root_1, stream_member_name.nextTree()); 6837 adaptor.addChild(root_1, stream_method_prototype.nextTree()); 6838 adaptor.addChild(root_0, root_1); 6839 } 6840 6841 } 6842 6843 6844 retval.tree = root_0; 6845 6846 } 6847 break; 6848 6849 } 6850 6851 } 6852 6853 } 6854 break; 6855 case 3 : 6856 // smaliParser.g:699:5: PRIMITIVE_TYPE 6857 { 6858 root_0 = (CommonTree)adaptor.nil(); 6859 6860 6861 PRIMITIVE_TYPE173=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal2959); 6862 PRIMITIVE_TYPE173_tree = (CommonTree)adaptor.create(PRIMITIVE_TYPE173); 6863 adaptor.addChild(root_0, PRIMITIVE_TYPE173_tree); 6864 6865 } 6866 break; 6867 case 4 : 6868 // smaliParser.g:700:5: VOID_TYPE 6869 { 6870 root_0 = (CommonTree)adaptor.nil(); 6871 6872 6873 VOID_TYPE174=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_field_method_literal2965); 6874 VOID_TYPE174_tree = (CommonTree)adaptor.create(VOID_TYPE174); 6875 adaptor.addChild(root_0, VOID_TYPE174_tree); 6876 6877 } 6878 break; 6879 6880 } 6881 retval.stop = input.LT(-1); 6882 6883 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 6884 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 6885 6886 } 6887 catch (RecognitionException re) { 6888 reportError(re); 6889 recover(input,re); 6890 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 6891 } 6892 finally { 6893 // do for sure before leaving 6894 } 6895 return retval; 6896 } 6897 // $ANTLR end "type_field_method_literal" 6898 6899 6900 public static class method_reference_return extends ParserRuleReturnScope { 6901 CommonTree tree; 6902 @Override 6903 public CommonTree getTree() { return tree; } 6904 }; 6905 6906 6907 // $ANTLR start "method_reference" 6908 // smaliParser.g:702:1: method_reference : ( reference_type_descriptor ARROW )? member_name method_prototype -> ( reference_type_descriptor )? member_name method_prototype ; 6909 public final smaliParser.method_reference_return method_reference() throws RecognitionException { 6910 smaliParser.method_reference_return retval = new smaliParser.method_reference_return(); 6911 retval.start = input.LT(1); 6912 6913 CommonTree root_0 = null; 6914 6915 Token ARROW176=null; 6916 ParserRuleReturnScope reference_type_descriptor175 =null; 6917 ParserRuleReturnScope member_name177 =null; 6918 ParserRuleReturnScope method_prototype178 =null; 6919 6920 CommonTree ARROW176_tree=null; 6921 RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW"); 6922 RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype"); 6923 RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name"); 6924 RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor"); 6925 6926 try { 6927 // smaliParser.g:703:3: ( ( reference_type_descriptor ARROW )? member_name method_prototype -> ( reference_type_descriptor )? member_name method_prototype ) 6928 // smaliParser.g:703:5: ( reference_type_descriptor ARROW )? member_name method_prototype 6929 { 6930 // smaliParser.g:703:5: ( reference_type_descriptor ARROW )? 6931 int alt32=2; 6932 int LA32_0 = input.LA(1); 6933 if ( (LA32_0==ARRAY_TYPE_PREFIX||LA32_0==CLASS_DESCRIPTOR) ) { 6934 alt32=1; 6935 } 6936 switch (alt32) { 6937 case 1 : 6938 // smaliParser.g:703:6: reference_type_descriptor ARROW 6939 { 6940 pushFollow(FOLLOW_reference_type_descriptor_in_method_reference2976); 6941 reference_type_descriptor175=reference_type_descriptor(); 6942 state._fsp--; 6943 6944 stream_reference_type_descriptor.add(reference_type_descriptor175.getTree()); 6945 ARROW176=(Token)match(input,ARROW,FOLLOW_ARROW_in_method_reference2978); 6946 stream_ARROW.add(ARROW176); 6947 6948 } 6949 break; 6950 6951 } 6952 6953 pushFollow(FOLLOW_member_name_in_method_reference2982); 6954 member_name177=member_name(); 6955 state._fsp--; 6956 6957 stream_member_name.add(member_name177.getTree()); 6958 pushFollow(FOLLOW_method_prototype_in_method_reference2984); 6959 method_prototype178=method_prototype(); 6960 state._fsp--; 6961 6962 stream_method_prototype.add(method_prototype178.getTree()); 6963 // AST REWRITE 6964 // elements: method_prototype, reference_type_descriptor, member_name 6965 // token labels: 6966 // rule labels: retval 6967 // token list labels: 6968 // rule list labels: 6969 // wildcard labels: 6970 retval.tree = root_0; 6971 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 6972 6973 root_0 = (CommonTree)adaptor.nil(); 6974 // 704:3: -> ( reference_type_descriptor )? member_name method_prototype 6975 { 6976 // smaliParser.g:704:6: ( reference_type_descriptor )? 6977 if ( stream_reference_type_descriptor.hasNext() ) { 6978 adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree()); 6979 } 6980 stream_reference_type_descriptor.reset(); 6981 6982 adaptor.addChild(root_0, stream_member_name.nextTree()); 6983 adaptor.addChild(root_0, stream_method_prototype.nextTree()); 6984 } 6985 6986 6987 retval.tree = root_0; 6988 6989 } 6990 6991 retval.stop = input.LT(-1); 6992 6993 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 6994 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 6995 6996 } 6997 catch (RecognitionException re) { 6998 reportError(re); 6999 recover(input,re); 7000 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 7001 } 7002 finally { 7003 // do for sure before leaving 7004 } 7005 return retval; 7006 } 7007 // $ANTLR end "method_reference" 7008 7009 7010 public static class field_reference_return extends ParserRuleReturnScope { 7011 CommonTree tree; 7012 @Override 7013 public CommonTree getTree() { return tree; } 7014 }; 7015 7016 7017 // $ANTLR start "field_reference" 7018 // smaliParser.g:706:1: field_reference : ( reference_type_descriptor ARROW )? member_name COLON nonvoid_type_descriptor -> ( reference_type_descriptor )? member_name nonvoid_type_descriptor ; 7019 public final smaliParser.field_reference_return field_reference() throws RecognitionException { 7020 smaliParser.field_reference_return retval = new smaliParser.field_reference_return(); 7021 retval.start = input.LT(1); 7022 7023 CommonTree root_0 = null; 7024 7025 Token ARROW180=null; 7026 Token COLON182=null; 7027 ParserRuleReturnScope reference_type_descriptor179 =null; 7028 ParserRuleReturnScope member_name181 =null; 7029 ParserRuleReturnScope nonvoid_type_descriptor183 =null; 7030 7031 CommonTree ARROW180_tree=null; 7032 CommonTree COLON182_tree=null; 7033 RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW"); 7034 RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); 7035 RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); 7036 RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name"); 7037 RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor"); 7038 7039 try { 7040 // smaliParser.g:707:3: ( ( reference_type_descriptor ARROW )? member_name COLON nonvoid_type_descriptor -> ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) 7041 // smaliParser.g:707:5: ( reference_type_descriptor ARROW )? member_name COLON nonvoid_type_descriptor 7042 { 7043 // smaliParser.g:707:5: ( reference_type_descriptor ARROW )? 7044 int alt33=2; 7045 int LA33_0 = input.LA(1); 7046 if ( (LA33_0==ARRAY_TYPE_PREFIX||LA33_0==CLASS_DESCRIPTOR) ) { 7047 alt33=1; 7048 } 7049 switch (alt33) { 7050 case 1 : 7051 // smaliParser.g:707:6: reference_type_descriptor ARROW 7052 { 7053 pushFollow(FOLLOW_reference_type_descriptor_in_field_reference3006); 7054 reference_type_descriptor179=reference_type_descriptor(); 7055 state._fsp--; 7056 7057 stream_reference_type_descriptor.add(reference_type_descriptor179.getTree()); 7058 ARROW180=(Token)match(input,ARROW,FOLLOW_ARROW_in_field_reference3008); 7059 stream_ARROW.add(ARROW180); 7060 7061 } 7062 break; 7063 7064 } 7065 7066 pushFollow(FOLLOW_member_name_in_field_reference3012); 7067 member_name181=member_name(); 7068 state._fsp--; 7069 7070 stream_member_name.add(member_name181.getTree()); 7071 COLON182=(Token)match(input,COLON,FOLLOW_COLON_in_field_reference3014); 7072 stream_COLON.add(COLON182); 7073 7074 pushFollow(FOLLOW_nonvoid_type_descriptor_in_field_reference3016); 7075 nonvoid_type_descriptor183=nonvoid_type_descriptor(); 7076 state._fsp--; 7077 7078 stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor183.getTree()); 7079 // AST REWRITE 7080 // elements: reference_type_descriptor, nonvoid_type_descriptor, member_name 7081 // token labels: 7082 // rule labels: retval 7083 // token list labels: 7084 // rule list labels: 7085 // wildcard labels: 7086 retval.tree = root_0; 7087 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 7088 7089 root_0 = (CommonTree)adaptor.nil(); 7090 // 708:3: -> ( reference_type_descriptor )? member_name nonvoid_type_descriptor 7091 { 7092 // smaliParser.g:708:6: ( reference_type_descriptor )? 7093 if ( stream_reference_type_descriptor.hasNext() ) { 7094 adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree()); 7095 } 7096 stream_reference_type_descriptor.reset(); 7097 7098 adaptor.addChild(root_0, stream_member_name.nextTree()); 7099 adaptor.addChild(root_0, stream_nonvoid_type_descriptor.nextTree()); 7100 } 7101 7102 7103 retval.tree = root_0; 7104 7105 } 7106 7107 retval.stop = input.LT(-1); 7108 7109 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 7110 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 7111 7112 } 7113 catch (RecognitionException re) { 7114 reportError(re); 7115 recover(input,re); 7116 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 7117 } 7118 finally { 7119 // do for sure before leaving 7120 } 7121 return retval; 7122 } 7123 // $ANTLR end "field_reference" 7124 7125 7126 public static class label_return extends ParserRuleReturnScope { 7127 CommonTree tree; 7128 @Override 7129 public CommonTree getTree() { return tree; } 7130 }; 7131 7132 7133 // $ANTLR start "label" 7134 // smaliParser.g:710:1: label : COLON simple_name -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name ) ; 7135 public final smaliParser.label_return label() throws RecognitionException { 7136 smaliParser.label_return retval = new smaliParser.label_return(); 7137 retval.start = input.LT(1); 7138 7139 CommonTree root_0 = null; 7140 7141 Token COLON184=null; 7142 ParserRuleReturnScope simple_name185 =null; 7143 7144 CommonTree COLON184_tree=null; 7145 RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); 7146 RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); 7147 7148 try { 7149 // smaliParser.g:711:3: ( COLON simple_name -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name ) ) 7150 // smaliParser.g:711:5: COLON simple_name 7151 { 7152 COLON184=(Token)match(input,COLON,FOLLOW_COLON_in_label3037); 7153 stream_COLON.add(COLON184); 7154 7155 pushFollow(FOLLOW_simple_name_in_label3039); 7156 simple_name185=simple_name(); 7157 state._fsp--; 7158 7159 stream_simple_name.add(simple_name185.getTree()); 7160 // AST REWRITE 7161 // elements: simple_name 7162 // token labels: 7163 // rule labels: retval 7164 // token list labels: 7165 // rule list labels: 7166 // wildcard labels: 7167 retval.tree = root_0; 7168 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 7169 7170 root_0 = (CommonTree)adaptor.nil(); 7171 // 711:23: -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name ) 7172 { 7173 // smaliParser.g:711:26: ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name ) 7174 { 7175 CommonTree root_1 = (CommonTree)adaptor.nil(); 7176 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LABEL, COLON184, "I_LABEL"), root_1); 7177 adaptor.addChild(root_1, stream_simple_name.nextTree()); 7178 adaptor.addChild(root_0, root_1); 7179 } 7180 7181 } 7182 7183 7184 retval.tree = root_0; 7185 7186 } 7187 7188 retval.stop = input.LT(-1); 7189 7190 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 7191 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 7192 7193 } 7194 catch (RecognitionException re) { 7195 reportError(re); 7196 recover(input,re); 7197 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 7198 } 7199 finally { 7200 // do for sure before leaving 7201 } 7202 return retval; 7203 } 7204 // $ANTLR end "label" 7205 7206 7207 public static class label_ref_return extends ParserRuleReturnScope { 7208 CommonTree tree; 7209 @Override 7210 public CommonTree getTree() { return tree; } 7211 }; 7212 7213 7214 // $ANTLR start "label_ref" 7215 // smaliParser.g:713:1: label_ref : COLON simple_name -> simple_name ; 7216 public final smaliParser.label_ref_return label_ref() throws RecognitionException { 7217 smaliParser.label_ref_return retval = new smaliParser.label_ref_return(); 7218 retval.start = input.LT(1); 7219 7220 CommonTree root_0 = null; 7221 7222 Token COLON186=null; 7223 ParserRuleReturnScope simple_name187 =null; 7224 7225 CommonTree COLON186_tree=null; 7226 RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); 7227 RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); 7228 7229 try { 7230 // smaliParser.g:714:3: ( COLON simple_name -> simple_name ) 7231 // smaliParser.g:714:5: COLON simple_name 7232 { 7233 COLON186=(Token)match(input,COLON,FOLLOW_COLON_in_label_ref3058); 7234 stream_COLON.add(COLON186); 7235 7236 pushFollow(FOLLOW_simple_name_in_label_ref3060); 7237 simple_name187=simple_name(); 7238 state._fsp--; 7239 7240 stream_simple_name.add(simple_name187.getTree()); 7241 // AST REWRITE 7242 // elements: simple_name 7243 // token labels: 7244 // rule labels: retval 7245 // token list labels: 7246 // rule list labels: 7247 // wildcard labels: 7248 retval.tree = root_0; 7249 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 7250 7251 root_0 = (CommonTree)adaptor.nil(); 7252 // 714:23: -> simple_name 7253 { 7254 adaptor.addChild(root_0, stream_simple_name.nextTree()); 7255 } 7256 7257 7258 retval.tree = root_0; 7259 7260 } 7261 7262 retval.stop = input.LT(-1); 7263 7264 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 7265 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 7266 7267 } 7268 catch (RecognitionException re) { 7269 reportError(re); 7270 recover(input,re); 7271 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 7272 } 7273 finally { 7274 // do for sure before leaving 7275 } 7276 return retval; 7277 } 7278 // $ANTLR end "label_ref" 7279 7280 7281 public static class register_list_return extends ParserRuleReturnScope { 7282 CommonTree tree; 7283 @Override 7284 public CommonTree getTree() { return tree; } 7285 }; 7286 7287 7288 // $ANTLR start "register_list" 7289 // smaliParser.g:716:1: register_list : ( REGISTER ( COMMA REGISTER )* -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) | -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) ); 7290 public final smaliParser.register_list_return register_list() throws RecognitionException { 7291 smaliParser.register_list_return retval = new smaliParser.register_list_return(); 7292 retval.start = input.LT(1); 7293 7294 CommonTree root_0 = null; 7295 7296 Token REGISTER188=null; 7297 Token COMMA189=null; 7298 Token REGISTER190=null; 7299 7300 CommonTree REGISTER188_tree=null; 7301 CommonTree COMMA189_tree=null; 7302 CommonTree REGISTER190_tree=null; 7303 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 7304 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 7305 7306 try { 7307 // smaliParser.g:717:3: ( REGISTER ( COMMA REGISTER )* -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) | -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) ) 7308 int alt35=2; 7309 int LA35_0 = input.LA(1); 7310 if ( (LA35_0==REGISTER) ) { 7311 alt35=1; 7312 } 7313 else if ( (LA35_0==CLOSE_BRACE) ) { 7314 alt35=2; 7315 } 7316 7317 else { 7318 NoViableAltException nvae = 7319 new NoViableAltException("", 35, 0, input); 7320 throw nvae; 7321 } 7322 7323 switch (alt35) { 7324 case 1 : 7325 // smaliParser.g:717:5: REGISTER ( COMMA REGISTER )* 7326 { 7327 REGISTER188=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_list3074); 7328 stream_REGISTER.add(REGISTER188); 7329 7330 // smaliParser.g:717:14: ( COMMA REGISTER )* 7331 loop34: 7332 while (true) { 7333 int alt34=2; 7334 int LA34_0 = input.LA(1); 7335 if ( (LA34_0==COMMA) ) { 7336 alt34=1; 7337 } 7338 7339 switch (alt34) { 7340 case 1 : 7341 // smaliParser.g:717:15: COMMA REGISTER 7342 { 7343 COMMA189=(Token)match(input,COMMA,FOLLOW_COMMA_in_register_list3077); 7344 stream_COMMA.add(COMMA189); 7345 7346 REGISTER190=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_list3079); 7347 stream_REGISTER.add(REGISTER190); 7348 7349 } 7350 break; 7351 7352 default : 7353 break loop34; 7354 } 7355 } 7356 7357 // AST REWRITE 7358 // elements: REGISTER 7359 // token labels: 7360 // rule labels: retval 7361 // token list labels: 7362 // rule list labels: 7363 // wildcard labels: 7364 retval.tree = root_0; 7365 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 7366 7367 root_0 = (CommonTree)adaptor.nil(); 7368 // 717:32: -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) 7369 { 7370 // smaliParser.g:717:35: ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) 7371 { 7372 CommonTree root_1 = (CommonTree)adaptor.nil(); 7373 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_LIST, (retval.start), "I_REGISTER_LIST"), root_1); 7374 // smaliParser.g:717:80: ( REGISTER )* 7375 while ( stream_REGISTER.hasNext() ) { 7376 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 7377 } 7378 stream_REGISTER.reset(); 7379 7380 adaptor.addChild(root_0, root_1); 7381 } 7382 7383 } 7384 7385 7386 retval.tree = root_0; 7387 7388 } 7389 break; 7390 case 2 : 7391 // smaliParser.g:718:5: 7392 { 7393 // AST REWRITE 7394 // elements: 7395 // token labels: 7396 // rule labels: retval 7397 // token list labels: 7398 // rule list labels: 7399 // wildcard labels: 7400 retval.tree = root_0; 7401 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 7402 7403 root_0 = (CommonTree)adaptor.nil(); 7404 // 718:5: -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) 7405 { 7406 // smaliParser.g:718:7: ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) 7407 { 7408 CommonTree root_1 = (CommonTree)adaptor.nil(); 7409 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_LIST, (retval.start), "I_REGISTER_LIST"), root_1); 7410 adaptor.addChild(root_0, root_1); 7411 } 7412 7413 } 7414 7415 7416 retval.tree = root_0; 7417 7418 } 7419 break; 7420 7421 } 7422 retval.stop = input.LT(-1); 7423 7424 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 7425 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 7426 7427 } 7428 catch (RecognitionException re) { 7429 reportError(re); 7430 recover(input,re); 7431 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 7432 } 7433 finally { 7434 // do for sure before leaving 7435 } 7436 return retval; 7437 } 7438 // $ANTLR end "register_list" 7439 7440 7441 public static class register_range_return extends ParserRuleReturnScope { 7442 CommonTree tree; 7443 @Override 7444 public CommonTree getTree() { return tree; } 7445 }; 7446 7447 7448 // $ANTLR start "register_range" 7449 // smaliParser.g:720:1: register_range : (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )? -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? ) ; 7450 public final smaliParser.register_range_return register_range() throws RecognitionException { 7451 smaliParser.register_range_return retval = new smaliParser.register_range_return(); 7452 retval.start = input.LT(1); 7453 7454 CommonTree root_0 = null; 7455 7456 Token startreg=null; 7457 Token endreg=null; 7458 Token DOTDOT191=null; 7459 7460 CommonTree startreg_tree=null; 7461 CommonTree endreg_tree=null; 7462 CommonTree DOTDOT191_tree=null; 7463 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 7464 RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT"); 7465 7466 try { 7467 // smaliParser.g:721:3: ( (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )? -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? ) ) 7468 // smaliParser.g:721:5: (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )? 7469 { 7470 // smaliParser.g:721:5: (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )? 7471 int alt37=2; 7472 int LA37_0 = input.LA(1); 7473 if ( (LA37_0==REGISTER) ) { 7474 alt37=1; 7475 } 7476 switch (alt37) { 7477 case 1 : 7478 // smaliParser.g:721:6: startreg= REGISTER ( DOTDOT endreg= REGISTER )? 7479 { 7480 startreg=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_range3114); 7481 stream_REGISTER.add(startreg); 7482 7483 // smaliParser.g:721:24: ( DOTDOT endreg= REGISTER )? 7484 int alt36=2; 7485 int LA36_0 = input.LA(1); 7486 if ( (LA36_0==DOTDOT) ) { 7487 alt36=1; 7488 } 7489 switch (alt36) { 7490 case 1 : 7491 // smaliParser.g:721:25: DOTDOT endreg= REGISTER 7492 { 7493 DOTDOT191=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_register_range3117); 7494 stream_DOTDOT.add(DOTDOT191); 7495 7496 endreg=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_range3121); 7497 stream_REGISTER.add(endreg); 7498 7499 } 7500 break; 7501 7502 } 7503 7504 } 7505 break; 7506 7507 } 7508 7509 // AST REWRITE 7510 // elements: startreg, endreg 7511 // token labels: startreg, endreg 7512 // rule labels: retval 7513 // token list labels: 7514 // rule list labels: 7515 // wildcard labels: 7516 retval.tree = root_0; 7517 RewriteRuleTokenStream stream_startreg=new RewriteRuleTokenStream(adaptor,"token startreg",startreg); 7518 RewriteRuleTokenStream stream_endreg=new RewriteRuleTokenStream(adaptor,"token endreg",endreg); 7519 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 7520 7521 root_0 = (CommonTree)adaptor.nil(); 7522 // 721:52: -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? ) 7523 { 7524 // smaliParser.g:721:55: ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? ) 7525 { 7526 CommonTree root_1 = (CommonTree)adaptor.nil(); 7527 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_RANGE, (retval.start), "I_REGISTER_RANGE"), root_1); 7528 // smaliParser.g:721:103: ( $startreg)? 7529 if ( stream_startreg.hasNext() ) { 7530 adaptor.addChild(root_1, stream_startreg.nextNode()); 7531 } 7532 stream_startreg.reset(); 7533 7534 // smaliParser.g:721:114: ( $endreg)? 7535 if ( stream_endreg.hasNext() ) { 7536 adaptor.addChild(root_1, stream_endreg.nextNode()); 7537 } 7538 stream_endreg.reset(); 7539 7540 adaptor.addChild(root_0, root_1); 7541 } 7542 7543 } 7544 7545 7546 retval.tree = root_0; 7547 7548 } 7549 7550 retval.stop = input.LT(-1); 7551 7552 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 7553 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 7554 7555 } 7556 catch (RecognitionException re) { 7557 reportError(re); 7558 recover(input,re); 7559 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 7560 } 7561 finally { 7562 // do for sure before leaving 7563 } 7564 return retval; 7565 } 7566 // $ANTLR end "register_range" 7567 7568 7569 public static class verification_error_reference_return extends ParserRuleReturnScope { 7570 CommonTree tree; 7571 @Override 7572 public CommonTree getTree() { return tree; } 7573 }; 7574 7575 7576 // $ANTLR start "verification_error_reference" 7577 // smaliParser.g:723:1: verification_error_reference : ( CLASS_DESCRIPTOR | field_reference | method_reference ); 7578 public final smaliParser.verification_error_reference_return verification_error_reference() throws RecognitionException { 7579 smaliParser.verification_error_reference_return retval = new smaliParser.verification_error_reference_return(); 7580 retval.start = input.LT(1); 7581 7582 CommonTree root_0 = null; 7583 7584 Token CLASS_DESCRIPTOR192=null; 7585 ParserRuleReturnScope field_reference193 =null; 7586 ParserRuleReturnScope method_reference194 =null; 7587 7588 CommonTree CLASS_DESCRIPTOR192_tree=null; 7589 7590 try { 7591 // smaliParser.g:724:3: ( CLASS_DESCRIPTOR | field_reference | method_reference ) 7592 int alt38=3; 7593 alt38 = dfa38.predict(input); 7594 switch (alt38) { 7595 case 1 : 7596 // smaliParser.g:724:5: CLASS_DESCRIPTOR 7597 { 7598 root_0 = (CommonTree)adaptor.nil(); 7599 7600 7601 CLASS_DESCRIPTOR192=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference3150); 7602 CLASS_DESCRIPTOR192_tree = (CommonTree)adaptor.create(CLASS_DESCRIPTOR192); 7603 adaptor.addChild(root_0, CLASS_DESCRIPTOR192_tree); 7604 7605 } 7606 break; 7607 case 2 : 7608 // smaliParser.g:724:24: field_reference 7609 { 7610 root_0 = (CommonTree)adaptor.nil(); 7611 7612 7613 pushFollow(FOLLOW_field_reference_in_verification_error_reference3154); 7614 field_reference193=field_reference(); 7615 state._fsp--; 7616 7617 adaptor.addChild(root_0, field_reference193.getTree()); 7618 7619 } 7620 break; 7621 case 3 : 7622 // smaliParser.g:724:42: method_reference 7623 { 7624 root_0 = (CommonTree)adaptor.nil(); 7625 7626 7627 pushFollow(FOLLOW_method_reference_in_verification_error_reference3158); 7628 method_reference194=method_reference(); 7629 state._fsp--; 7630 7631 adaptor.addChild(root_0, method_reference194.getTree()); 7632 7633 } 7634 break; 7635 7636 } 7637 retval.stop = input.LT(-1); 7638 7639 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 7640 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 7641 7642 } 7643 catch (RecognitionException re) { 7644 reportError(re); 7645 recover(input,re); 7646 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 7647 } 7648 finally { 7649 // do for sure before leaving 7650 } 7651 return retval; 7652 } 7653 // $ANTLR end "verification_error_reference" 7654 7655 7656 public static class catch_directive_return extends ParserRuleReturnScope { 7657 CommonTree tree; 7658 @Override 7659 public CommonTree getTree() { return tree; } 7660 }; 7661 7662 7663 // $ANTLR start "catch_directive" 7664 // smaliParser.g:726:1: catch_directive : CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using) ; 7665 public final smaliParser.catch_directive_return catch_directive() throws RecognitionException { 7666 smaliParser.catch_directive_return retval = new smaliParser.catch_directive_return(); 7667 retval.start = input.LT(1); 7668 7669 CommonTree root_0 = null; 7670 7671 Token CATCH_DIRECTIVE195=null; 7672 Token OPEN_BRACE197=null; 7673 Token DOTDOT198=null; 7674 Token CLOSE_BRACE199=null; 7675 ParserRuleReturnScope from =null; 7676 ParserRuleReturnScope to =null; 7677 ParserRuleReturnScope using =null; 7678 ParserRuleReturnScope nonvoid_type_descriptor196 =null; 7679 7680 CommonTree CATCH_DIRECTIVE195_tree=null; 7681 CommonTree OPEN_BRACE197_tree=null; 7682 CommonTree DOTDOT198_tree=null; 7683 CommonTree CLOSE_BRACE199_tree=null; 7684 RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE"); 7685 RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE"); 7686 RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT"); 7687 RewriteRuleTokenStream stream_CATCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CATCH_DIRECTIVE"); 7688 RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref"); 7689 RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); 7690 7691 try { 7692 // smaliParser.g:727:3: ( CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using) ) 7693 // smaliParser.g:727:5: CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref 7694 { 7695 CATCH_DIRECTIVE195=(Token)match(input,CATCH_DIRECTIVE,FOLLOW_CATCH_DIRECTIVE_in_catch_directive3168); 7696 stream_CATCH_DIRECTIVE.add(CATCH_DIRECTIVE195); 7697 7698 pushFollow(FOLLOW_nonvoid_type_descriptor_in_catch_directive3170); 7699 nonvoid_type_descriptor196=nonvoid_type_descriptor(); 7700 state._fsp--; 7701 7702 stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor196.getTree()); 7703 OPEN_BRACE197=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_catch_directive3172); 7704 stream_OPEN_BRACE.add(OPEN_BRACE197); 7705 7706 pushFollow(FOLLOW_label_ref_in_catch_directive3176); 7707 from=label_ref(); 7708 state._fsp--; 7709 7710 stream_label_ref.add(from.getTree()); 7711 DOTDOT198=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_catch_directive3178); 7712 stream_DOTDOT.add(DOTDOT198); 7713 7714 pushFollow(FOLLOW_label_ref_in_catch_directive3182); 7715 to=label_ref(); 7716 state._fsp--; 7717 7718 stream_label_ref.add(to.getTree()); 7719 CLOSE_BRACE199=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_catch_directive3184); 7720 stream_CLOSE_BRACE.add(CLOSE_BRACE199); 7721 7722 pushFollow(FOLLOW_label_ref_in_catch_directive3188); 7723 using=label_ref(); 7724 state._fsp--; 7725 7726 stream_label_ref.add(using.getTree()); 7727 // AST REWRITE 7728 // elements: from, nonvoid_type_descriptor, using, to 7729 // token labels: 7730 // rule labels: using, from, to, retval 7731 // token list labels: 7732 // rule list labels: 7733 // wildcard labels: 7734 retval.tree = root_0; 7735 RewriteRuleSubtreeStream stream_using=new RewriteRuleSubtreeStream(adaptor,"rule using",using!=null?using.getTree():null); 7736 RewriteRuleSubtreeStream stream_from=new RewriteRuleSubtreeStream(adaptor,"rule from",from!=null?from.getTree():null); 7737 RewriteRuleSubtreeStream stream_to=new RewriteRuleSubtreeStream(adaptor,"rule to",to!=null?to.getTree():null); 7738 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 7739 7740 root_0 = (CommonTree)adaptor.nil(); 7741 // 728:5: -> ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using) 7742 { 7743 // smaliParser.g:728:8: ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using) 7744 { 7745 CommonTree root_1 = (CommonTree)adaptor.nil(); 7746 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCH, (retval.start), "I_CATCH"), root_1); 7747 adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); 7748 adaptor.addChild(root_1, stream_from.nextTree()); 7749 adaptor.addChild(root_1, stream_to.nextTree()); 7750 adaptor.addChild(root_1, stream_using.nextTree()); 7751 adaptor.addChild(root_0, root_1); 7752 } 7753 7754 } 7755 7756 7757 retval.tree = root_0; 7758 7759 } 7760 7761 retval.stop = input.LT(-1); 7762 7763 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 7764 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 7765 7766 } 7767 catch (RecognitionException re) { 7768 reportError(re); 7769 recover(input,re); 7770 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 7771 } 7772 finally { 7773 // do for sure before leaving 7774 } 7775 return retval; 7776 } 7777 // $ANTLR end "catch_directive" 7778 7779 7780 public static class catchall_directive_return extends ParserRuleReturnScope { 7781 CommonTree tree; 7782 @Override 7783 public CommonTree getTree() { return tree; } 7784 }; 7785 7786 7787 // $ANTLR start "catchall_directive" 7788 // smaliParser.g:730:1: catchall_directive : CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using) ; 7789 public final smaliParser.catchall_directive_return catchall_directive() throws RecognitionException { 7790 smaliParser.catchall_directive_return retval = new smaliParser.catchall_directive_return(); 7791 retval.start = input.LT(1); 7792 7793 CommonTree root_0 = null; 7794 7795 Token CATCHALL_DIRECTIVE200=null; 7796 Token OPEN_BRACE201=null; 7797 Token DOTDOT202=null; 7798 Token CLOSE_BRACE203=null; 7799 ParserRuleReturnScope from =null; 7800 ParserRuleReturnScope to =null; 7801 ParserRuleReturnScope using =null; 7802 7803 CommonTree CATCHALL_DIRECTIVE200_tree=null; 7804 CommonTree OPEN_BRACE201_tree=null; 7805 CommonTree DOTDOT202_tree=null; 7806 CommonTree CLOSE_BRACE203_tree=null; 7807 RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE"); 7808 RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE"); 7809 RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT"); 7810 RewriteRuleTokenStream stream_CATCHALL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CATCHALL_DIRECTIVE"); 7811 RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref"); 7812 7813 try { 7814 // smaliParser.g:731:3: ( CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using) ) 7815 // smaliParser.g:731:5: CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref 7816 { 7817 CATCHALL_DIRECTIVE200=(Token)match(input,CATCHALL_DIRECTIVE,FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive3220); 7818 stream_CATCHALL_DIRECTIVE.add(CATCHALL_DIRECTIVE200); 7819 7820 OPEN_BRACE201=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_catchall_directive3222); 7821 stream_OPEN_BRACE.add(OPEN_BRACE201); 7822 7823 pushFollow(FOLLOW_label_ref_in_catchall_directive3226); 7824 from=label_ref(); 7825 state._fsp--; 7826 7827 stream_label_ref.add(from.getTree()); 7828 DOTDOT202=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_catchall_directive3228); 7829 stream_DOTDOT.add(DOTDOT202); 7830 7831 pushFollow(FOLLOW_label_ref_in_catchall_directive3232); 7832 to=label_ref(); 7833 state._fsp--; 7834 7835 stream_label_ref.add(to.getTree()); 7836 CLOSE_BRACE203=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_catchall_directive3234); 7837 stream_CLOSE_BRACE.add(CLOSE_BRACE203); 7838 7839 pushFollow(FOLLOW_label_ref_in_catchall_directive3238); 7840 using=label_ref(); 7841 state._fsp--; 7842 7843 stream_label_ref.add(using.getTree()); 7844 // AST REWRITE 7845 // elements: using, to, from 7846 // token labels: 7847 // rule labels: using, from, to, retval 7848 // token list labels: 7849 // rule list labels: 7850 // wildcard labels: 7851 retval.tree = root_0; 7852 RewriteRuleSubtreeStream stream_using=new RewriteRuleSubtreeStream(adaptor,"rule using",using!=null?using.getTree():null); 7853 RewriteRuleSubtreeStream stream_from=new RewriteRuleSubtreeStream(adaptor,"rule from",from!=null?from.getTree():null); 7854 RewriteRuleSubtreeStream stream_to=new RewriteRuleSubtreeStream(adaptor,"rule to",to!=null?to.getTree():null); 7855 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 7856 7857 root_0 = (CommonTree)adaptor.nil(); 7858 // 732:5: -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using) 7859 { 7860 // smaliParser.g:732:8: ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using) 7861 { 7862 CommonTree root_1 = (CommonTree)adaptor.nil(); 7863 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCHALL, (retval.start), "I_CATCHALL"), root_1); 7864 adaptor.addChild(root_1, stream_from.nextTree()); 7865 adaptor.addChild(root_1, stream_to.nextTree()); 7866 adaptor.addChild(root_1, stream_using.nextTree()); 7867 adaptor.addChild(root_0, root_1); 7868 } 7869 7870 } 7871 7872 7873 retval.tree = root_0; 7874 7875 } 7876 7877 retval.stop = input.LT(-1); 7878 7879 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 7880 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 7881 7882 } 7883 catch (RecognitionException re) { 7884 reportError(re); 7885 recover(input,re); 7886 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 7887 } 7888 finally { 7889 // do for sure before leaving 7890 } 7891 return retval; 7892 } 7893 // $ANTLR end "catchall_directive" 7894 7895 7896 public static class parameter_directive_return extends ParserRuleReturnScope { 7897 CommonTree tree; 7898 @Override 7899 public CommonTree getTree() { return tree; } 7900 }; 7901 7902 7903 // $ANTLR start "parameter_directive" 7904 // smaliParser.g:738:1: parameter_directive : PARAMETER_DIRECTIVE REGISTER ( COMMA STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) ; 7905 public final smaliParser.parameter_directive_return parameter_directive() throws RecognitionException { 7906 smaliParser.parameter_directive_return retval = new smaliParser.parameter_directive_return(); 7907 retval.start = input.LT(1); 7908 7909 CommonTree root_0 = null; 7910 7911 Token PARAMETER_DIRECTIVE204=null; 7912 Token REGISTER205=null; 7913 Token COMMA206=null; 7914 Token STRING_LITERAL207=null; 7915 Token END_PARAMETER_DIRECTIVE209=null; 7916 ParserRuleReturnScope annotation208 =null; 7917 7918 CommonTree PARAMETER_DIRECTIVE204_tree=null; 7919 CommonTree REGISTER205_tree=null; 7920 CommonTree COMMA206_tree=null; 7921 CommonTree STRING_LITERAL207_tree=null; 7922 CommonTree END_PARAMETER_DIRECTIVE209_tree=null; 7923 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 7924 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 7925 RewriteRuleTokenStream stream_PARAMETER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PARAMETER_DIRECTIVE"); 7926 RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); 7927 RewriteRuleTokenStream stream_END_PARAMETER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_PARAMETER_DIRECTIVE"); 7928 RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation"); 7929 7930 List<CommonTree> annotations = new ArrayList<CommonTree>(); 7931 try { 7932 // smaliParser.g:740:3: ( PARAMETER_DIRECTIVE REGISTER ( COMMA STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) ) 7933 // smaliParser.g:740:5: PARAMETER_DIRECTIVE REGISTER ( COMMA STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) 7934 { 7935 PARAMETER_DIRECTIVE204=(Token)match(input,PARAMETER_DIRECTIVE,FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive3277); 7936 stream_PARAMETER_DIRECTIVE.add(PARAMETER_DIRECTIVE204); 7937 7938 REGISTER205=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_parameter_directive3279); 7939 stream_REGISTER.add(REGISTER205); 7940 7941 // smaliParser.g:740:34: ( COMMA STRING_LITERAL )? 7942 int alt39=2; 7943 int LA39_0 = input.LA(1); 7944 if ( (LA39_0==COMMA) ) { 7945 alt39=1; 7946 } 7947 switch (alt39) { 7948 case 1 : 7949 // smaliParser.g:740:35: COMMA STRING_LITERAL 7950 { 7951 COMMA206=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameter_directive3282); 7952 stream_COMMA.add(COMMA206); 7953 7954 STRING_LITERAL207=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_parameter_directive3284); 7955 stream_STRING_LITERAL.add(STRING_LITERAL207); 7956 7957 } 7958 break; 7959 7960 } 7961 7962 // smaliParser.g:741:5: ({...}? annotation )* 7963 loop40: 7964 while (true) { 7965 int alt40=2; 7966 alt40 = dfa40.predict(input); 7967 switch (alt40) { 7968 case 1 : 7969 // smaliParser.g:741:6: {...}? annotation 7970 { 7971 if ( !((input.LA(1) == ANNOTATION_DIRECTIVE)) ) { 7972 throw new FailedPredicateException(input, "parameter_directive", "input.LA(1) == ANNOTATION_DIRECTIVE"); 7973 } 7974 pushFollow(FOLLOW_annotation_in_parameter_directive3295); 7975 annotation208=annotation(); 7976 state._fsp--; 7977 7978 stream_annotation.add(annotation208.getTree()); 7979 annotations.add((annotation208!=null?((CommonTree)annotation208.getTree()):null)); 7980 } 7981 break; 7982 7983 default : 7984 break loop40; 7985 } 7986 } 7987 7988 // smaliParser.g:743:5: ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) 7989 int alt41=2; 7990 int LA41_0 = input.LA(1); 7991 if ( (LA41_0==END_PARAMETER_DIRECTIVE) ) { 7992 alt41=1; 7993 } 7994 else if ( (LA41_0==ANNOTATION_DIRECTIVE||LA41_0==ARRAY_DATA_DIRECTIVE||(LA41_0 >= CATCHALL_DIRECTIVE && LA41_0 <= CATCH_DIRECTIVE)||LA41_0==COLON||(LA41_0 >= END_LOCAL_DIRECTIVE && LA41_0 <= END_METHOD_DIRECTIVE)||LA41_0==EPILOGUE_DIRECTIVE||(LA41_0 >= INSTRUCTION_FORMAT10t && LA41_0 <= INSTRUCTION_FORMAT51l)||(LA41_0 >= LINE_DIRECTIVE && LA41_0 <= LOCAL_DIRECTIVE)||(LA41_0 >= PACKED_SWITCH_DIRECTIVE && LA41_0 <= PARAMETER_DIRECTIVE)||LA41_0==PROLOGUE_DIRECTIVE||(LA41_0 >= REGISTERS_DIRECTIVE && LA41_0 <= RESTART_LOCAL_DIRECTIVE)||(LA41_0 >= SOURCE_DIRECTIVE && LA41_0 <= SPARSE_SWITCH_DIRECTIVE)) ) { 7995 alt41=2; 7996 } 7997 7998 else { 7999 NoViableAltException nvae = 8000 new NoViableAltException("", 41, 0, input); 8001 throw nvae; 8002 } 8003 8004 switch (alt41) { 8005 case 1 : 8006 // smaliParser.g:743:7: END_PARAMETER_DIRECTIVE 8007 { 8008 END_PARAMETER_DIRECTIVE209=(Token)match(input,END_PARAMETER_DIRECTIVE,FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive3308); 8009 stream_END_PARAMETER_DIRECTIVE.add(END_PARAMETER_DIRECTIVE209); 8010 8011 // AST REWRITE 8012 // elements: STRING_LITERAL, annotation, REGISTER 8013 // token labels: 8014 // rule labels: retval 8015 // token list labels: 8016 // rule list labels: 8017 // wildcard labels: 8018 retval.tree = root_0; 8019 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 8020 8021 root_0 = (CommonTree)adaptor.nil(); 8022 // 744:7: -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) 8023 { 8024 // smaliParser.g:744:10: ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) 8025 { 8026 CommonTree root_1 = (CommonTree)adaptor.nil(); 8027 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETER, (retval.start), "I_PARAMETER"), root_1); 8028 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 8029 // smaliParser.g:744:56: ( STRING_LITERAL )? 8030 if ( stream_STRING_LITERAL.hasNext() ) { 8031 adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); 8032 } 8033 stream_STRING_LITERAL.reset(); 8034 8035 // smaliParser.g:744:72: ^( I_ANNOTATIONS ( annotation )* ) 8036 { 8037 CommonTree root_2 = (CommonTree)adaptor.nil(); 8038 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2); 8039 // smaliParser.g:744:88: ( annotation )* 8040 while ( stream_annotation.hasNext() ) { 8041 adaptor.addChild(root_2, stream_annotation.nextTree()); 8042 } 8043 stream_annotation.reset(); 8044 8045 adaptor.addChild(root_1, root_2); 8046 } 8047 8048 adaptor.addChild(root_0, root_1); 8049 } 8050 8051 } 8052 8053 8054 retval.tree = root_0; 8055 8056 } 8057 break; 8058 case 2 : 8059 // smaliParser.g:745:19: 8060 { 8061 statements_and_directives_stack.peek().methodAnnotations.addAll(annotations); 8062 // AST REWRITE 8063 // elements: STRING_LITERAL, REGISTER 8064 // token labels: 8065 // rule labels: retval 8066 // token list labels: 8067 // rule list labels: 8068 // wildcard labels: 8069 retval.tree = root_0; 8070 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 8071 8072 root_0 = (CommonTree)adaptor.nil(); 8073 // 746:7: -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) 8074 { 8075 // smaliParser.g:746:10: ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) 8076 { 8077 CommonTree root_1 = (CommonTree)adaptor.nil(); 8078 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETER, (retval.start), "I_PARAMETER"), root_1); 8079 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 8080 // smaliParser.g:746:56: ( STRING_LITERAL )? 8081 if ( stream_STRING_LITERAL.hasNext() ) { 8082 adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); 8083 } 8084 stream_STRING_LITERAL.reset(); 8085 8086 // smaliParser.g:746:72: ^( I_ANNOTATIONS ) 8087 { 8088 CommonTree root_2 = (CommonTree)adaptor.nil(); 8089 root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2); 8090 adaptor.addChild(root_1, root_2); 8091 } 8092 8093 adaptor.addChild(root_0, root_1); 8094 } 8095 8096 } 8097 8098 8099 retval.tree = root_0; 8100 8101 } 8102 break; 8103 8104 } 8105 8106 } 8107 8108 retval.stop = input.LT(-1); 8109 8110 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 8111 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 8112 8113 } 8114 catch (RecognitionException re) { 8115 reportError(re); 8116 recover(input,re); 8117 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 8118 } 8119 finally { 8120 // do for sure before leaving 8121 } 8122 return retval; 8123 } 8124 // $ANTLR end "parameter_directive" 8125 8126 8127 public static class debug_directive_return extends ParserRuleReturnScope { 8128 CommonTree tree; 8129 @Override 8130 public CommonTree getTree() { return tree; } 8131 }; 8132 8133 8134 // $ANTLR start "debug_directive" 8135 // smaliParser.g:749:1: debug_directive : ( line_directive | local_directive | end_local_directive | restart_local_directive | prologue_directive | epilogue_directive | source_directive ); 8136 public final smaliParser.debug_directive_return debug_directive() throws RecognitionException { 8137 smaliParser.debug_directive_return retval = new smaliParser.debug_directive_return(); 8138 retval.start = input.LT(1); 8139 8140 CommonTree root_0 = null; 8141 8142 ParserRuleReturnScope line_directive210 =null; 8143 ParserRuleReturnScope local_directive211 =null; 8144 ParserRuleReturnScope end_local_directive212 =null; 8145 ParserRuleReturnScope restart_local_directive213 =null; 8146 ParserRuleReturnScope prologue_directive214 =null; 8147 ParserRuleReturnScope epilogue_directive215 =null; 8148 ParserRuleReturnScope source_directive216 =null; 8149 8150 8151 try { 8152 // smaliParser.g:750:3: ( line_directive | local_directive | end_local_directive | restart_local_directive | prologue_directive | epilogue_directive | source_directive ) 8153 int alt42=7; 8154 switch ( input.LA(1) ) { 8155 case LINE_DIRECTIVE: 8156 { 8157 alt42=1; 8158 } 8159 break; 8160 case LOCAL_DIRECTIVE: 8161 { 8162 alt42=2; 8163 } 8164 break; 8165 case END_LOCAL_DIRECTIVE: 8166 { 8167 alt42=3; 8168 } 8169 break; 8170 case RESTART_LOCAL_DIRECTIVE: 8171 { 8172 alt42=4; 8173 } 8174 break; 8175 case PROLOGUE_DIRECTIVE: 8176 { 8177 alt42=5; 8178 } 8179 break; 8180 case EPILOGUE_DIRECTIVE: 8181 { 8182 alt42=6; 8183 } 8184 break; 8185 case SOURCE_DIRECTIVE: 8186 { 8187 alt42=7; 8188 } 8189 break; 8190 default: 8191 NoViableAltException nvae = 8192 new NoViableAltException("", 42, 0, input); 8193 throw nvae; 8194 } 8195 switch (alt42) { 8196 case 1 : 8197 // smaliParser.g:750:5: line_directive 8198 { 8199 root_0 = (CommonTree)adaptor.nil(); 8200 8201 8202 pushFollow(FOLLOW_line_directive_in_debug_directive3381); 8203 line_directive210=line_directive(); 8204 state._fsp--; 8205 8206 adaptor.addChild(root_0, line_directive210.getTree()); 8207 8208 } 8209 break; 8210 case 2 : 8211 // smaliParser.g:751:5: local_directive 8212 { 8213 root_0 = (CommonTree)adaptor.nil(); 8214 8215 8216 pushFollow(FOLLOW_local_directive_in_debug_directive3387); 8217 local_directive211=local_directive(); 8218 state._fsp--; 8219 8220 adaptor.addChild(root_0, local_directive211.getTree()); 8221 8222 } 8223 break; 8224 case 3 : 8225 // smaliParser.g:752:5: end_local_directive 8226 { 8227 root_0 = (CommonTree)adaptor.nil(); 8228 8229 8230 pushFollow(FOLLOW_end_local_directive_in_debug_directive3393); 8231 end_local_directive212=end_local_directive(); 8232 state._fsp--; 8233 8234 adaptor.addChild(root_0, end_local_directive212.getTree()); 8235 8236 } 8237 break; 8238 case 4 : 8239 // smaliParser.g:753:5: restart_local_directive 8240 { 8241 root_0 = (CommonTree)adaptor.nil(); 8242 8243 8244 pushFollow(FOLLOW_restart_local_directive_in_debug_directive3399); 8245 restart_local_directive213=restart_local_directive(); 8246 state._fsp--; 8247 8248 adaptor.addChild(root_0, restart_local_directive213.getTree()); 8249 8250 } 8251 break; 8252 case 5 : 8253 // smaliParser.g:754:5: prologue_directive 8254 { 8255 root_0 = (CommonTree)adaptor.nil(); 8256 8257 8258 pushFollow(FOLLOW_prologue_directive_in_debug_directive3405); 8259 prologue_directive214=prologue_directive(); 8260 state._fsp--; 8261 8262 adaptor.addChild(root_0, prologue_directive214.getTree()); 8263 8264 } 8265 break; 8266 case 6 : 8267 // smaliParser.g:755:5: epilogue_directive 8268 { 8269 root_0 = (CommonTree)adaptor.nil(); 8270 8271 8272 pushFollow(FOLLOW_epilogue_directive_in_debug_directive3411); 8273 epilogue_directive215=epilogue_directive(); 8274 state._fsp--; 8275 8276 adaptor.addChild(root_0, epilogue_directive215.getTree()); 8277 8278 } 8279 break; 8280 case 7 : 8281 // smaliParser.g:756:5: source_directive 8282 { 8283 root_0 = (CommonTree)adaptor.nil(); 8284 8285 8286 pushFollow(FOLLOW_source_directive_in_debug_directive3417); 8287 source_directive216=source_directive(); 8288 state._fsp--; 8289 8290 adaptor.addChild(root_0, source_directive216.getTree()); 8291 8292 } 8293 break; 8294 8295 } 8296 retval.stop = input.LT(-1); 8297 8298 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 8299 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 8300 8301 } 8302 catch (RecognitionException re) { 8303 reportError(re); 8304 recover(input,re); 8305 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 8306 } 8307 finally { 8308 // do for sure before leaving 8309 } 8310 return retval; 8311 } 8312 // $ANTLR end "debug_directive" 8313 8314 8315 public static class line_directive_return extends ParserRuleReturnScope { 8316 CommonTree tree; 8317 @Override 8318 public CommonTree getTree() { return tree; } 8319 }; 8320 8321 8322 // $ANTLR start "line_directive" 8323 // smaliParser.g:758:1: line_directive : LINE_DIRECTIVE integral_literal -> ^( I_LINE[$start, \"I_LINE\"] integral_literal ) ; 8324 public final smaliParser.line_directive_return line_directive() throws RecognitionException { 8325 smaliParser.line_directive_return retval = new smaliParser.line_directive_return(); 8326 retval.start = input.LT(1); 8327 8328 CommonTree root_0 = null; 8329 8330 Token LINE_DIRECTIVE217=null; 8331 ParserRuleReturnScope integral_literal218 =null; 8332 8333 CommonTree LINE_DIRECTIVE217_tree=null; 8334 RewriteRuleTokenStream stream_LINE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LINE_DIRECTIVE"); 8335 RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal"); 8336 8337 try { 8338 // smaliParser.g:759:3: ( LINE_DIRECTIVE integral_literal -> ^( I_LINE[$start, \"I_LINE\"] integral_literal ) ) 8339 // smaliParser.g:759:5: LINE_DIRECTIVE integral_literal 8340 { 8341 LINE_DIRECTIVE217=(Token)match(input,LINE_DIRECTIVE,FOLLOW_LINE_DIRECTIVE_in_line_directive3427); 8342 stream_LINE_DIRECTIVE.add(LINE_DIRECTIVE217); 8343 8344 pushFollow(FOLLOW_integral_literal_in_line_directive3429); 8345 integral_literal218=integral_literal(); 8346 state._fsp--; 8347 8348 stream_integral_literal.add(integral_literal218.getTree()); 8349 // AST REWRITE 8350 // elements: integral_literal 8351 // token labels: 8352 // rule labels: retval 8353 // token list labels: 8354 // rule list labels: 8355 // wildcard labels: 8356 retval.tree = root_0; 8357 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 8358 8359 root_0 = (CommonTree)adaptor.nil(); 8360 // 760:5: -> ^( I_LINE[$start, \"I_LINE\"] integral_literal ) 8361 { 8362 // smaliParser.g:760:8: ^( I_LINE[$start, \"I_LINE\"] integral_literal ) 8363 { 8364 CommonTree root_1 = (CommonTree)adaptor.nil(); 8365 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LINE, (retval.start), "I_LINE"), root_1); 8366 adaptor.addChild(root_1, stream_integral_literal.nextTree()); 8367 adaptor.addChild(root_0, root_1); 8368 } 8369 8370 } 8371 8372 8373 retval.tree = root_0; 8374 8375 } 8376 8377 retval.stop = input.LT(-1); 8378 8379 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 8380 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 8381 8382 } 8383 catch (RecognitionException re) { 8384 reportError(re); 8385 recover(input,re); 8386 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 8387 } 8388 finally { 8389 // do for sure before leaving 8390 } 8391 return retval; 8392 } 8393 // $ANTLR end "line_directive" 8394 8395 8396 public static class local_directive_return extends ParserRuleReturnScope { 8397 CommonTree tree; 8398 @Override 8399 public CommonTree getTree() { return tree; } 8400 }; 8401 8402 8403 // $ANTLR start "local_directive" 8404 // smaliParser.g:762:1: local_directive : LOCAL_DIRECTIVE REGISTER ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )? -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? ) ; 8405 public final smaliParser.local_directive_return local_directive() throws RecognitionException { 8406 smaliParser.local_directive_return retval = new smaliParser.local_directive_return(); 8407 retval.start = input.LT(1); 8408 8409 CommonTree root_0 = null; 8410 8411 Token name=null; 8412 Token signature=null; 8413 Token LOCAL_DIRECTIVE219=null; 8414 Token REGISTER220=null; 8415 Token COMMA221=null; 8416 Token NULL_LITERAL222=null; 8417 Token COLON223=null; 8418 Token VOID_TYPE224=null; 8419 Token COMMA226=null; 8420 ParserRuleReturnScope nonvoid_type_descriptor225 =null; 8421 8422 CommonTree name_tree=null; 8423 CommonTree signature_tree=null; 8424 CommonTree LOCAL_DIRECTIVE219_tree=null; 8425 CommonTree REGISTER220_tree=null; 8426 CommonTree COMMA221_tree=null; 8427 CommonTree NULL_LITERAL222_tree=null; 8428 CommonTree COLON223_tree=null; 8429 CommonTree VOID_TYPE224_tree=null; 8430 CommonTree COMMA226_tree=null; 8431 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 8432 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 8433 RewriteRuleTokenStream stream_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LOCAL_DIRECTIVE"); 8434 RewriteRuleTokenStream stream_VOID_TYPE=new RewriteRuleTokenStream(adaptor,"token VOID_TYPE"); 8435 RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); 8436 RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); 8437 RewriteRuleTokenStream stream_NULL_LITERAL=new RewriteRuleTokenStream(adaptor,"token NULL_LITERAL"); 8438 RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); 8439 8440 try { 8441 // smaliParser.g:763:3: ( LOCAL_DIRECTIVE REGISTER ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )? -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? ) ) 8442 // smaliParser.g:763:5: LOCAL_DIRECTIVE REGISTER ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )? 8443 { 8444 LOCAL_DIRECTIVE219=(Token)match(input,LOCAL_DIRECTIVE,FOLLOW_LOCAL_DIRECTIVE_in_local_directive3452); 8445 stream_LOCAL_DIRECTIVE.add(LOCAL_DIRECTIVE219); 8446 8447 REGISTER220=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_local_directive3454); 8448 stream_REGISTER.add(REGISTER220); 8449 8450 // smaliParser.g:763:30: ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )? 8451 int alt46=2; 8452 int LA46_0 = input.LA(1); 8453 if ( (LA46_0==COMMA) ) { 8454 alt46=1; 8455 } 8456 switch (alt46) { 8457 case 1 : 8458 // smaliParser.g:763:31: COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? 8459 { 8460 COMMA221=(Token)match(input,COMMA,FOLLOW_COMMA_in_local_directive3457); 8461 stream_COMMA.add(COMMA221); 8462 8463 // smaliParser.g:763:37: ( NULL_LITERAL |name= STRING_LITERAL ) 8464 int alt43=2; 8465 int LA43_0 = input.LA(1); 8466 if ( (LA43_0==NULL_LITERAL) ) { 8467 alt43=1; 8468 } 8469 else if ( (LA43_0==STRING_LITERAL) ) { 8470 alt43=2; 8471 } 8472 8473 else { 8474 NoViableAltException nvae = 8475 new NoViableAltException("", 43, 0, input); 8476 throw nvae; 8477 } 8478 8479 switch (alt43) { 8480 case 1 : 8481 // smaliParser.g:763:38: NULL_LITERAL 8482 { 8483 NULL_LITERAL222=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_local_directive3460); 8484 stream_NULL_LITERAL.add(NULL_LITERAL222); 8485 8486 } 8487 break; 8488 case 2 : 8489 // smaliParser.g:763:53: name= STRING_LITERAL 8490 { 8491 name=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_local_directive3466); 8492 stream_STRING_LITERAL.add(name); 8493 8494 } 8495 break; 8496 8497 } 8498 8499 COLON223=(Token)match(input,COLON,FOLLOW_COLON_in_local_directive3469); 8500 stream_COLON.add(COLON223); 8501 8502 // smaliParser.g:763:80: ( VOID_TYPE | nonvoid_type_descriptor ) 8503 int alt44=2; 8504 int LA44_0 = input.LA(1); 8505 if ( (LA44_0==VOID_TYPE) ) { 8506 alt44=1; 8507 } 8508 else if ( (LA44_0==ARRAY_TYPE_PREFIX||LA44_0==CLASS_DESCRIPTOR||LA44_0==PRIMITIVE_TYPE) ) { 8509 alt44=2; 8510 } 8511 8512 else { 8513 NoViableAltException nvae = 8514 new NoViableAltException("", 44, 0, input); 8515 throw nvae; 8516 } 8517 8518 switch (alt44) { 8519 case 1 : 8520 // smaliParser.g:763:81: VOID_TYPE 8521 { 8522 VOID_TYPE224=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_local_directive3472); 8523 stream_VOID_TYPE.add(VOID_TYPE224); 8524 8525 } 8526 break; 8527 case 2 : 8528 // smaliParser.g:763:93: nonvoid_type_descriptor 8529 { 8530 pushFollow(FOLLOW_nonvoid_type_descriptor_in_local_directive3476); 8531 nonvoid_type_descriptor225=nonvoid_type_descriptor(); 8532 state._fsp--; 8533 8534 stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor225.getTree()); 8535 } 8536 break; 8537 8538 } 8539 8540 // smaliParser.g:764:31: ( COMMA signature= STRING_LITERAL )? 8541 int alt45=2; 8542 int LA45_0 = input.LA(1); 8543 if ( (LA45_0==COMMA) ) { 8544 alt45=1; 8545 } 8546 switch (alt45) { 8547 case 1 : 8548 // smaliParser.g:764:32: COMMA signature= STRING_LITERAL 8549 { 8550 COMMA226=(Token)match(input,COMMA,FOLLOW_COMMA_in_local_directive3510); 8551 stream_COMMA.add(COMMA226); 8552 8553 signature=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_local_directive3514); 8554 stream_STRING_LITERAL.add(signature); 8555 8556 } 8557 break; 8558 8559 } 8560 8561 } 8562 break; 8563 8564 } 8565 8566 // AST REWRITE 8567 // elements: name, NULL_LITERAL, nonvoid_type_descriptor, REGISTER, signature 8568 // token labels: signature, name 8569 // rule labels: retval 8570 // token list labels: 8571 // rule list labels: 8572 // wildcard labels: 8573 retval.tree = root_0; 8574 RewriteRuleTokenStream stream_signature=new RewriteRuleTokenStream(adaptor,"token signature",signature); 8575 RewriteRuleTokenStream stream_name=new RewriteRuleTokenStream(adaptor,"token name",name); 8576 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 8577 8578 root_0 = (CommonTree)adaptor.nil(); 8579 // 765:5: -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? ) 8580 { 8581 // smaliParser.g:765:8: ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? ) 8582 { 8583 CommonTree root_1 = (CommonTree)adaptor.nil(); 8584 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LOCAL, (retval.start), "I_LOCAL"), root_1); 8585 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 8586 // smaliParser.g:765:46: ( NULL_LITERAL )? 8587 if ( stream_NULL_LITERAL.hasNext() ) { 8588 adaptor.addChild(root_1, stream_NULL_LITERAL.nextNode()); 8589 } 8590 stream_NULL_LITERAL.reset(); 8591 8592 // smaliParser.g:765:61: ( $name)? 8593 if ( stream_name.hasNext() ) { 8594 adaptor.addChild(root_1, stream_name.nextNode()); 8595 } 8596 stream_name.reset(); 8597 8598 // smaliParser.g:765:67: ( nonvoid_type_descriptor )? 8599 if ( stream_nonvoid_type_descriptor.hasNext() ) { 8600 adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); 8601 } 8602 stream_nonvoid_type_descriptor.reset(); 8603 8604 // smaliParser.g:765:93: ( $signature)? 8605 if ( stream_signature.hasNext() ) { 8606 adaptor.addChild(root_1, stream_signature.nextNode()); 8607 } 8608 stream_signature.reset(); 8609 8610 adaptor.addChild(root_0, root_1); 8611 } 8612 8613 } 8614 8615 8616 retval.tree = root_0; 8617 8618 } 8619 8620 retval.stop = input.LT(-1); 8621 8622 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 8623 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 8624 8625 } 8626 catch (RecognitionException re) { 8627 reportError(re); 8628 recover(input,re); 8629 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 8630 } 8631 finally { 8632 // do for sure before leaving 8633 } 8634 return retval; 8635 } 8636 // $ANTLR end "local_directive" 8637 8638 8639 public static class end_local_directive_return extends ParserRuleReturnScope { 8640 CommonTree tree; 8641 @Override 8642 public CommonTree getTree() { return tree; } 8643 }; 8644 8645 8646 // $ANTLR start "end_local_directive" 8647 // smaliParser.g:767:1: end_local_directive : END_LOCAL_DIRECTIVE REGISTER -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER ) ; 8648 public final smaliParser.end_local_directive_return end_local_directive() throws RecognitionException { 8649 smaliParser.end_local_directive_return retval = new smaliParser.end_local_directive_return(); 8650 retval.start = input.LT(1); 8651 8652 CommonTree root_0 = null; 8653 8654 Token END_LOCAL_DIRECTIVE227=null; 8655 Token REGISTER228=null; 8656 8657 CommonTree END_LOCAL_DIRECTIVE227_tree=null; 8658 CommonTree REGISTER228_tree=null; 8659 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 8660 RewriteRuleTokenStream stream_END_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_LOCAL_DIRECTIVE"); 8661 8662 try { 8663 // smaliParser.g:768:3: ( END_LOCAL_DIRECTIVE REGISTER -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER ) ) 8664 // smaliParser.g:768:5: END_LOCAL_DIRECTIVE REGISTER 8665 { 8666 END_LOCAL_DIRECTIVE227=(Token)match(input,END_LOCAL_DIRECTIVE,FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive3556); 8667 stream_END_LOCAL_DIRECTIVE.add(END_LOCAL_DIRECTIVE227); 8668 8669 REGISTER228=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_end_local_directive3558); 8670 stream_REGISTER.add(REGISTER228); 8671 8672 // AST REWRITE 8673 // elements: REGISTER 8674 // token labels: 8675 // rule labels: retval 8676 // token list labels: 8677 // rule list labels: 8678 // wildcard labels: 8679 retval.tree = root_0; 8680 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 8681 8682 root_0 = (CommonTree)adaptor.nil(); 8683 // 769:5: -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER ) 8684 { 8685 // smaliParser.g:769:8: ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER ) 8686 { 8687 CommonTree root_1 = (CommonTree)adaptor.nil(); 8688 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_END_LOCAL, (retval.start), "I_END_LOCAL"), root_1); 8689 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 8690 adaptor.addChild(root_0, root_1); 8691 } 8692 8693 } 8694 8695 8696 retval.tree = root_0; 8697 8698 } 8699 8700 retval.stop = input.LT(-1); 8701 8702 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 8703 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 8704 8705 } 8706 catch (RecognitionException re) { 8707 reportError(re); 8708 recover(input,re); 8709 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 8710 } 8711 finally { 8712 // do for sure before leaving 8713 } 8714 return retval; 8715 } 8716 // $ANTLR end "end_local_directive" 8717 8718 8719 public static class restart_local_directive_return extends ParserRuleReturnScope { 8720 CommonTree tree; 8721 @Override 8722 public CommonTree getTree() { return tree; } 8723 }; 8724 8725 8726 // $ANTLR start "restart_local_directive" 8727 // smaliParser.g:771:1: restart_local_directive : RESTART_LOCAL_DIRECTIVE REGISTER -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER ) ; 8728 public final smaliParser.restart_local_directive_return restart_local_directive() throws RecognitionException { 8729 smaliParser.restart_local_directive_return retval = new smaliParser.restart_local_directive_return(); 8730 retval.start = input.LT(1); 8731 8732 CommonTree root_0 = null; 8733 8734 Token RESTART_LOCAL_DIRECTIVE229=null; 8735 Token REGISTER230=null; 8736 8737 CommonTree RESTART_LOCAL_DIRECTIVE229_tree=null; 8738 CommonTree REGISTER230_tree=null; 8739 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 8740 RewriteRuleTokenStream stream_RESTART_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token RESTART_LOCAL_DIRECTIVE"); 8741 8742 try { 8743 // smaliParser.g:772:3: ( RESTART_LOCAL_DIRECTIVE REGISTER -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER ) ) 8744 // smaliParser.g:772:5: RESTART_LOCAL_DIRECTIVE REGISTER 8745 { 8746 RESTART_LOCAL_DIRECTIVE229=(Token)match(input,RESTART_LOCAL_DIRECTIVE,FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive3581); 8747 stream_RESTART_LOCAL_DIRECTIVE.add(RESTART_LOCAL_DIRECTIVE229); 8748 8749 REGISTER230=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_restart_local_directive3583); 8750 stream_REGISTER.add(REGISTER230); 8751 8752 // AST REWRITE 8753 // elements: REGISTER 8754 // token labels: 8755 // rule labels: retval 8756 // token list labels: 8757 // rule list labels: 8758 // wildcard labels: 8759 retval.tree = root_0; 8760 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 8761 8762 root_0 = (CommonTree)adaptor.nil(); 8763 // 773:5: -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER ) 8764 { 8765 // smaliParser.g:773:8: ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER ) 8766 { 8767 CommonTree root_1 = (CommonTree)adaptor.nil(); 8768 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_RESTART_LOCAL, (retval.start), "I_RESTART_LOCAL"), root_1); 8769 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 8770 adaptor.addChild(root_0, root_1); 8771 } 8772 8773 } 8774 8775 8776 retval.tree = root_0; 8777 8778 } 8779 8780 retval.stop = input.LT(-1); 8781 8782 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 8783 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 8784 8785 } 8786 catch (RecognitionException re) { 8787 reportError(re); 8788 recover(input,re); 8789 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 8790 } 8791 finally { 8792 // do for sure before leaving 8793 } 8794 return retval; 8795 } 8796 // $ANTLR end "restart_local_directive" 8797 8798 8799 public static class prologue_directive_return extends ParserRuleReturnScope { 8800 CommonTree tree; 8801 @Override 8802 public CommonTree getTree() { return tree; } 8803 }; 8804 8805 8806 // $ANTLR start "prologue_directive" 8807 // smaliParser.g:775:1: prologue_directive : PROLOGUE_DIRECTIVE -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] ) ; 8808 public final smaliParser.prologue_directive_return prologue_directive() throws RecognitionException { 8809 smaliParser.prologue_directive_return retval = new smaliParser.prologue_directive_return(); 8810 retval.start = input.LT(1); 8811 8812 CommonTree root_0 = null; 8813 8814 Token PROLOGUE_DIRECTIVE231=null; 8815 8816 CommonTree PROLOGUE_DIRECTIVE231_tree=null; 8817 RewriteRuleTokenStream stream_PROLOGUE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PROLOGUE_DIRECTIVE"); 8818 8819 try { 8820 // smaliParser.g:776:3: ( PROLOGUE_DIRECTIVE -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] ) ) 8821 // smaliParser.g:776:5: PROLOGUE_DIRECTIVE 8822 { 8823 PROLOGUE_DIRECTIVE231=(Token)match(input,PROLOGUE_DIRECTIVE,FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive3606); 8824 stream_PROLOGUE_DIRECTIVE.add(PROLOGUE_DIRECTIVE231); 8825 8826 // AST REWRITE 8827 // elements: 8828 // token labels: 8829 // rule labels: retval 8830 // token list labels: 8831 // rule list labels: 8832 // wildcard labels: 8833 retval.tree = root_0; 8834 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 8835 8836 root_0 = (CommonTree)adaptor.nil(); 8837 // 777:5: -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] ) 8838 { 8839 // smaliParser.g:777:8: ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] ) 8840 { 8841 CommonTree root_1 = (CommonTree)adaptor.nil(); 8842 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PROLOGUE, (retval.start), "I_PROLOGUE"), root_1); 8843 adaptor.addChild(root_0, root_1); 8844 } 8845 8846 } 8847 8848 8849 retval.tree = root_0; 8850 8851 } 8852 8853 retval.stop = input.LT(-1); 8854 8855 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 8856 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 8857 8858 } 8859 catch (RecognitionException re) { 8860 reportError(re); 8861 recover(input,re); 8862 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 8863 } 8864 finally { 8865 // do for sure before leaving 8866 } 8867 return retval; 8868 } 8869 // $ANTLR end "prologue_directive" 8870 8871 8872 public static class epilogue_directive_return extends ParserRuleReturnScope { 8873 CommonTree tree; 8874 @Override 8875 public CommonTree getTree() { return tree; } 8876 }; 8877 8878 8879 // $ANTLR start "epilogue_directive" 8880 // smaliParser.g:779:1: epilogue_directive : EPILOGUE_DIRECTIVE -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] ) ; 8881 public final smaliParser.epilogue_directive_return epilogue_directive() throws RecognitionException { 8882 smaliParser.epilogue_directive_return retval = new smaliParser.epilogue_directive_return(); 8883 retval.start = input.LT(1); 8884 8885 CommonTree root_0 = null; 8886 8887 Token EPILOGUE_DIRECTIVE232=null; 8888 8889 CommonTree EPILOGUE_DIRECTIVE232_tree=null; 8890 RewriteRuleTokenStream stream_EPILOGUE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token EPILOGUE_DIRECTIVE"); 8891 8892 try { 8893 // smaliParser.g:780:3: ( EPILOGUE_DIRECTIVE -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] ) ) 8894 // smaliParser.g:780:5: EPILOGUE_DIRECTIVE 8895 { 8896 EPILOGUE_DIRECTIVE232=(Token)match(input,EPILOGUE_DIRECTIVE,FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive3627); 8897 stream_EPILOGUE_DIRECTIVE.add(EPILOGUE_DIRECTIVE232); 8898 8899 // AST REWRITE 8900 // elements: 8901 // token labels: 8902 // rule labels: retval 8903 // token list labels: 8904 // rule list labels: 8905 // wildcard labels: 8906 retval.tree = root_0; 8907 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 8908 8909 root_0 = (CommonTree)adaptor.nil(); 8910 // 781:5: -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] ) 8911 { 8912 // smaliParser.g:781:8: ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] ) 8913 { 8914 CommonTree root_1 = (CommonTree)adaptor.nil(); 8915 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_EPILOGUE, (retval.start), "I_EPILOGUE"), root_1); 8916 adaptor.addChild(root_0, root_1); 8917 } 8918 8919 } 8920 8921 8922 retval.tree = root_0; 8923 8924 } 8925 8926 retval.stop = input.LT(-1); 8927 8928 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 8929 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 8930 8931 } 8932 catch (RecognitionException re) { 8933 reportError(re); 8934 recover(input,re); 8935 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 8936 } 8937 finally { 8938 // do for sure before leaving 8939 } 8940 return retval; 8941 } 8942 // $ANTLR end "epilogue_directive" 8943 8944 8945 public static class source_directive_return extends ParserRuleReturnScope { 8946 CommonTree tree; 8947 @Override 8948 public CommonTree getTree() { return tree; } 8949 }; 8950 8951 8952 // $ANTLR start "source_directive" 8953 // smaliParser.g:783:1: source_directive : SOURCE_DIRECTIVE ( STRING_LITERAL )? -> ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? ) ; 8954 public final smaliParser.source_directive_return source_directive() throws RecognitionException { 8955 smaliParser.source_directive_return retval = new smaliParser.source_directive_return(); 8956 retval.start = input.LT(1); 8957 8958 CommonTree root_0 = null; 8959 8960 Token SOURCE_DIRECTIVE233=null; 8961 Token STRING_LITERAL234=null; 8962 8963 CommonTree SOURCE_DIRECTIVE233_tree=null; 8964 CommonTree STRING_LITERAL234_tree=null; 8965 RewriteRuleTokenStream stream_SOURCE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SOURCE_DIRECTIVE"); 8966 RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); 8967 8968 try { 8969 // smaliParser.g:784:3: ( SOURCE_DIRECTIVE ( STRING_LITERAL )? -> ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? ) ) 8970 // smaliParser.g:784:5: SOURCE_DIRECTIVE ( STRING_LITERAL )? 8971 { 8972 SOURCE_DIRECTIVE233=(Token)match(input,SOURCE_DIRECTIVE,FOLLOW_SOURCE_DIRECTIVE_in_source_directive3648); 8973 stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE233); 8974 8975 // smaliParser.g:784:22: ( STRING_LITERAL )? 8976 int alt47=2; 8977 int LA47_0 = input.LA(1); 8978 if ( (LA47_0==STRING_LITERAL) ) { 8979 alt47=1; 8980 } 8981 switch (alt47) { 8982 case 1 : 8983 // smaliParser.g:784:22: STRING_LITERAL 8984 { 8985 STRING_LITERAL234=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_source_directive3650); 8986 stream_STRING_LITERAL.add(STRING_LITERAL234); 8987 8988 } 8989 break; 8990 8991 } 8992 8993 // AST REWRITE 8994 // elements: STRING_LITERAL 8995 // token labels: 8996 // rule labels: retval 8997 // token list labels: 8998 // rule list labels: 8999 // wildcard labels: 9000 retval.tree = root_0; 9001 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 9002 9003 root_0 = (CommonTree)adaptor.nil(); 9004 // 785:5: -> ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? ) 9005 { 9006 // smaliParser.g:785:8: ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? ) 9007 { 9008 CommonTree root_1 = (CommonTree)adaptor.nil(); 9009 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SOURCE, (retval.start), "I_SOURCE"), root_1); 9010 // smaliParser.g:785:39: ( STRING_LITERAL )? 9011 if ( stream_STRING_LITERAL.hasNext() ) { 9012 adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); 9013 } 9014 stream_STRING_LITERAL.reset(); 9015 9016 adaptor.addChild(root_0, root_1); 9017 } 9018 9019 } 9020 9021 9022 retval.tree = root_0; 9023 9024 } 9025 9026 retval.stop = input.LT(-1); 9027 9028 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 9029 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 9030 9031 } 9032 catch (RecognitionException re) { 9033 reportError(re); 9034 recover(input,re); 9035 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 9036 } 9037 finally { 9038 // do for sure before leaving 9039 } 9040 return retval; 9041 } 9042 // $ANTLR end "source_directive" 9043 9044 9045 public static class instruction_format12x_return extends ParserRuleReturnScope { 9046 CommonTree tree; 9047 @Override 9048 public CommonTree getTree() { return tree; } 9049 }; 9050 9051 9052 // $ANTLR start "instruction_format12x" 9053 // smaliParser.g:787:1: instruction_format12x : ( INSTRUCTION_FORMAT12x | INSTRUCTION_FORMAT12x_OR_ID -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] ); 9054 public final smaliParser.instruction_format12x_return instruction_format12x() throws RecognitionException { 9055 smaliParser.instruction_format12x_return retval = new smaliParser.instruction_format12x_return(); 9056 retval.start = input.LT(1); 9057 9058 CommonTree root_0 = null; 9059 9060 Token INSTRUCTION_FORMAT12x235=null; 9061 Token INSTRUCTION_FORMAT12x_OR_ID236=null; 9062 9063 CommonTree INSTRUCTION_FORMAT12x235_tree=null; 9064 CommonTree INSTRUCTION_FORMAT12x_OR_ID236_tree=null; 9065 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT12x_OR_ID"); 9066 9067 try { 9068 // smaliParser.g:788:3: ( INSTRUCTION_FORMAT12x | INSTRUCTION_FORMAT12x_OR_ID -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] ) 9069 int alt48=2; 9070 int LA48_0 = input.LA(1); 9071 if ( (LA48_0==INSTRUCTION_FORMAT12x) ) { 9072 alt48=1; 9073 } 9074 else if ( (LA48_0==INSTRUCTION_FORMAT12x_OR_ID) ) { 9075 alt48=2; 9076 } 9077 9078 else { 9079 NoViableAltException nvae = 9080 new NoViableAltException("", 48, 0, input); 9081 throw nvae; 9082 } 9083 9084 switch (alt48) { 9085 case 1 : 9086 // smaliParser.g:788:5: INSTRUCTION_FORMAT12x 9087 { 9088 root_0 = (CommonTree)adaptor.nil(); 9089 9090 9091 INSTRUCTION_FORMAT12x235=(Token)match(input,INSTRUCTION_FORMAT12x,FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x3675); 9092 INSTRUCTION_FORMAT12x235_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT12x235); 9093 adaptor.addChild(root_0, INSTRUCTION_FORMAT12x235_tree); 9094 9095 } 9096 break; 9097 case 2 : 9098 // smaliParser.g:789:5: INSTRUCTION_FORMAT12x_OR_ID 9099 { 9100 INSTRUCTION_FORMAT12x_OR_ID236=(Token)match(input,INSTRUCTION_FORMAT12x_OR_ID,FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x3681); 9101 stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID236); 9102 9103 // AST REWRITE 9104 // elements: 9105 // token labels: 9106 // rule labels: retval 9107 // token list labels: 9108 // rule list labels: 9109 // wildcard labels: 9110 retval.tree = root_0; 9111 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 9112 9113 root_0 = (CommonTree)adaptor.nil(); 9114 // 789:33: -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] 9115 { 9116 adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT12x, INSTRUCTION_FORMAT12x_OR_ID236)); 9117 } 9118 9119 9120 retval.tree = root_0; 9121 9122 } 9123 break; 9124 9125 } 9126 retval.stop = input.LT(-1); 9127 9128 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 9129 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 9130 9131 } 9132 catch (RecognitionException re) { 9133 reportError(re); 9134 recover(input,re); 9135 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 9136 } 9137 finally { 9138 // do for sure before leaving 9139 } 9140 return retval; 9141 } 9142 // $ANTLR end "instruction_format12x" 9143 9144 9145 public static class instruction_format22s_return extends ParserRuleReturnScope { 9146 CommonTree tree; 9147 @Override 9148 public CommonTree getTree() { return tree; } 9149 }; 9150 9151 9152 // $ANTLR start "instruction_format22s" 9153 // smaliParser.g:791:1: instruction_format22s : ( INSTRUCTION_FORMAT22s | INSTRUCTION_FORMAT22s_OR_ID -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] ); 9154 public final smaliParser.instruction_format22s_return instruction_format22s() throws RecognitionException { 9155 smaliParser.instruction_format22s_return retval = new smaliParser.instruction_format22s_return(); 9156 retval.start = input.LT(1); 9157 9158 CommonTree root_0 = null; 9159 9160 Token INSTRUCTION_FORMAT22s237=null; 9161 Token INSTRUCTION_FORMAT22s_OR_ID238=null; 9162 9163 CommonTree INSTRUCTION_FORMAT22s237_tree=null; 9164 CommonTree INSTRUCTION_FORMAT22s_OR_ID238_tree=null; 9165 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22s_OR_ID"); 9166 9167 try { 9168 // smaliParser.g:792:3: ( INSTRUCTION_FORMAT22s | INSTRUCTION_FORMAT22s_OR_ID -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] ) 9169 int alt49=2; 9170 int LA49_0 = input.LA(1); 9171 if ( (LA49_0==INSTRUCTION_FORMAT22s) ) { 9172 alt49=1; 9173 } 9174 else if ( (LA49_0==INSTRUCTION_FORMAT22s_OR_ID) ) { 9175 alt49=2; 9176 } 9177 9178 else { 9179 NoViableAltException nvae = 9180 new NoViableAltException("", 49, 0, input); 9181 throw nvae; 9182 } 9183 9184 switch (alt49) { 9185 case 1 : 9186 // smaliParser.g:792:5: INSTRUCTION_FORMAT22s 9187 { 9188 root_0 = (CommonTree)adaptor.nil(); 9189 9190 9191 INSTRUCTION_FORMAT22s237=(Token)match(input,INSTRUCTION_FORMAT22s,FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s3696); 9192 INSTRUCTION_FORMAT22s237_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT22s237); 9193 adaptor.addChild(root_0, INSTRUCTION_FORMAT22s237_tree); 9194 9195 } 9196 break; 9197 case 2 : 9198 // smaliParser.g:793:5: INSTRUCTION_FORMAT22s_OR_ID 9199 { 9200 INSTRUCTION_FORMAT22s_OR_ID238=(Token)match(input,INSTRUCTION_FORMAT22s_OR_ID,FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s3702); 9201 stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID238); 9202 9203 // AST REWRITE 9204 // elements: 9205 // token labels: 9206 // rule labels: retval 9207 // token list labels: 9208 // rule list labels: 9209 // wildcard labels: 9210 retval.tree = root_0; 9211 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 9212 9213 root_0 = (CommonTree)adaptor.nil(); 9214 // 793:33: -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] 9215 { 9216 adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT22s, INSTRUCTION_FORMAT22s_OR_ID238)); 9217 } 9218 9219 9220 retval.tree = root_0; 9221 9222 } 9223 break; 9224 9225 } 9226 retval.stop = input.LT(-1); 9227 9228 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 9229 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 9230 9231 } 9232 catch (RecognitionException re) { 9233 reportError(re); 9234 recover(input,re); 9235 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 9236 } 9237 finally { 9238 // do for sure before leaving 9239 } 9240 return retval; 9241 } 9242 // $ANTLR end "instruction_format22s" 9243 9244 9245 public static class instruction_format31i_return extends ParserRuleReturnScope { 9246 CommonTree tree; 9247 @Override 9248 public CommonTree getTree() { return tree; } 9249 }; 9250 9251 9252 // $ANTLR start "instruction_format31i" 9253 // smaliParser.g:795:1: instruction_format31i : ( INSTRUCTION_FORMAT31i | INSTRUCTION_FORMAT31i_OR_ID -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] ); 9254 public final smaliParser.instruction_format31i_return instruction_format31i() throws RecognitionException { 9255 smaliParser.instruction_format31i_return retval = new smaliParser.instruction_format31i_return(); 9256 retval.start = input.LT(1); 9257 9258 CommonTree root_0 = null; 9259 9260 Token INSTRUCTION_FORMAT31i239=null; 9261 Token INSTRUCTION_FORMAT31i_OR_ID240=null; 9262 9263 CommonTree INSTRUCTION_FORMAT31i239_tree=null; 9264 CommonTree INSTRUCTION_FORMAT31i_OR_ID240_tree=null; 9265 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31i_OR_ID"); 9266 9267 try { 9268 // smaliParser.g:796:3: ( INSTRUCTION_FORMAT31i | INSTRUCTION_FORMAT31i_OR_ID -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] ) 9269 int alt50=2; 9270 int LA50_0 = input.LA(1); 9271 if ( (LA50_0==INSTRUCTION_FORMAT31i) ) { 9272 alt50=1; 9273 } 9274 else if ( (LA50_0==INSTRUCTION_FORMAT31i_OR_ID) ) { 9275 alt50=2; 9276 } 9277 9278 else { 9279 NoViableAltException nvae = 9280 new NoViableAltException("", 50, 0, input); 9281 throw nvae; 9282 } 9283 9284 switch (alt50) { 9285 case 1 : 9286 // smaliParser.g:796:5: INSTRUCTION_FORMAT31i 9287 { 9288 root_0 = (CommonTree)adaptor.nil(); 9289 9290 9291 INSTRUCTION_FORMAT31i239=(Token)match(input,INSTRUCTION_FORMAT31i,FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i3717); 9292 INSTRUCTION_FORMAT31i239_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT31i239); 9293 adaptor.addChild(root_0, INSTRUCTION_FORMAT31i239_tree); 9294 9295 } 9296 break; 9297 case 2 : 9298 // smaliParser.g:797:5: INSTRUCTION_FORMAT31i_OR_ID 9299 { 9300 INSTRUCTION_FORMAT31i_OR_ID240=(Token)match(input,INSTRUCTION_FORMAT31i_OR_ID,FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i3723); 9301 stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID240); 9302 9303 // AST REWRITE 9304 // elements: 9305 // token labels: 9306 // rule labels: retval 9307 // token list labels: 9308 // rule list labels: 9309 // wildcard labels: 9310 retval.tree = root_0; 9311 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 9312 9313 root_0 = (CommonTree)adaptor.nil(); 9314 // 797:33: -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] 9315 { 9316 adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT31i, INSTRUCTION_FORMAT31i_OR_ID240)); 9317 } 9318 9319 9320 retval.tree = root_0; 9321 9322 } 9323 break; 9324 9325 } 9326 retval.stop = input.LT(-1); 9327 9328 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 9329 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 9330 9331 } 9332 catch (RecognitionException re) { 9333 reportError(re); 9334 recover(input,re); 9335 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 9336 } 9337 finally { 9338 // do for sure before leaving 9339 } 9340 return retval; 9341 } 9342 // $ANTLR end "instruction_format31i" 9343 9344 9345 public static class instruction_return extends ParserRuleReturnScope { 9346 CommonTree tree; 9347 @Override 9348 public CommonTree getTree() { return tree; } 9349 }; 9350 9351 9352 // $ANTLR start "instruction" 9353 // smaliParser.g:801:1: instruction : ( insn_format10t | insn_format10x | insn_format10x_odex | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_field_odex | insn_format21c_string | insn_format21c_type | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_field_odex | insn_format22c_type | insn_format22cs_field | 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_format35c_method_odex | insn_format35mi_method | insn_format35ms_method | insn_format3rc_method | insn_format3rc_method_odex | insn_format3rc_type | insn_format3rmi_method | insn_format3rms_method | insn_format45cc_method | insn_format4rcc_method | insn_format51l | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive ); 9354 public final smaliParser.instruction_return instruction() throws RecognitionException { 9355 smaliParser.instruction_return retval = new smaliParser.instruction_return(); 9356 retval.start = input.LT(1); 9357 9358 CommonTree root_0 = null; 9359 9360 ParserRuleReturnScope insn_format10t241 =null; 9361 ParserRuleReturnScope insn_format10x242 =null; 9362 ParserRuleReturnScope insn_format10x_odex243 =null; 9363 ParserRuleReturnScope insn_format11n244 =null; 9364 ParserRuleReturnScope insn_format11x245 =null; 9365 ParserRuleReturnScope insn_format12x246 =null; 9366 ParserRuleReturnScope insn_format20bc247 =null; 9367 ParserRuleReturnScope insn_format20t248 =null; 9368 ParserRuleReturnScope insn_format21c_field249 =null; 9369 ParserRuleReturnScope insn_format21c_field_odex250 =null; 9370 ParserRuleReturnScope insn_format21c_string251 =null; 9371 ParserRuleReturnScope insn_format21c_type252 =null; 9372 ParserRuleReturnScope insn_format21ih253 =null; 9373 ParserRuleReturnScope insn_format21lh254 =null; 9374 ParserRuleReturnScope insn_format21s255 =null; 9375 ParserRuleReturnScope insn_format21t256 =null; 9376 ParserRuleReturnScope insn_format22b257 =null; 9377 ParserRuleReturnScope insn_format22c_field258 =null; 9378 ParserRuleReturnScope insn_format22c_field_odex259 =null; 9379 ParserRuleReturnScope insn_format22c_type260 =null; 9380 ParserRuleReturnScope insn_format22cs_field261 =null; 9381 ParserRuleReturnScope insn_format22s262 =null; 9382 ParserRuleReturnScope insn_format22t263 =null; 9383 ParserRuleReturnScope insn_format22x264 =null; 9384 ParserRuleReturnScope insn_format23x265 =null; 9385 ParserRuleReturnScope insn_format30t266 =null; 9386 ParserRuleReturnScope insn_format31c267 =null; 9387 ParserRuleReturnScope insn_format31i268 =null; 9388 ParserRuleReturnScope insn_format31t269 =null; 9389 ParserRuleReturnScope insn_format32x270 =null; 9390 ParserRuleReturnScope insn_format35c_method271 =null; 9391 ParserRuleReturnScope insn_format35c_type272 =null; 9392 ParserRuleReturnScope insn_format35c_method_odex273 =null; 9393 ParserRuleReturnScope insn_format35mi_method274 =null; 9394 ParserRuleReturnScope insn_format35ms_method275 =null; 9395 ParserRuleReturnScope insn_format3rc_method276 =null; 9396 ParserRuleReturnScope insn_format3rc_method_odex277 =null; 9397 ParserRuleReturnScope insn_format3rc_type278 =null; 9398 ParserRuleReturnScope insn_format3rmi_method279 =null; 9399 ParserRuleReturnScope insn_format3rms_method280 =null; 9400 ParserRuleReturnScope insn_format45cc_method281 =null; 9401 ParserRuleReturnScope insn_format4rcc_method282 =null; 9402 ParserRuleReturnScope insn_format51l283 =null; 9403 ParserRuleReturnScope insn_array_data_directive284 =null; 9404 ParserRuleReturnScope insn_packed_switch_directive285 =null; 9405 ParserRuleReturnScope insn_sparse_switch_directive286 =null; 9406 9407 9408 try { 9409 // smaliParser.g:802:3: ( insn_format10t | insn_format10x | insn_format10x_odex | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_field_odex | insn_format21c_string | insn_format21c_type | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_field_odex | insn_format22c_type | insn_format22cs_field | 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_format35c_method_odex | insn_format35mi_method | insn_format35ms_method | insn_format3rc_method | insn_format3rc_method_odex | insn_format3rc_type | insn_format3rmi_method | insn_format3rms_method | insn_format45cc_method | insn_format4rcc_method | insn_format51l | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive ) 9410 int alt51=46; 9411 switch ( input.LA(1) ) { 9412 case INSTRUCTION_FORMAT10t: 9413 { 9414 alt51=1; 9415 } 9416 break; 9417 case INSTRUCTION_FORMAT10x: 9418 { 9419 alt51=2; 9420 } 9421 break; 9422 case INSTRUCTION_FORMAT10x_ODEX: 9423 { 9424 alt51=3; 9425 } 9426 break; 9427 case INSTRUCTION_FORMAT11n: 9428 { 9429 alt51=4; 9430 } 9431 break; 9432 case INSTRUCTION_FORMAT11x: 9433 { 9434 alt51=5; 9435 } 9436 break; 9437 case INSTRUCTION_FORMAT12x: 9438 case INSTRUCTION_FORMAT12x_OR_ID: 9439 { 9440 alt51=6; 9441 } 9442 break; 9443 case INSTRUCTION_FORMAT20bc: 9444 { 9445 alt51=7; 9446 } 9447 break; 9448 case INSTRUCTION_FORMAT20t: 9449 { 9450 alt51=8; 9451 } 9452 break; 9453 case INSTRUCTION_FORMAT21c_FIELD: 9454 { 9455 alt51=9; 9456 } 9457 break; 9458 case INSTRUCTION_FORMAT21c_FIELD_ODEX: 9459 { 9460 alt51=10; 9461 } 9462 break; 9463 case INSTRUCTION_FORMAT21c_STRING: 9464 { 9465 alt51=11; 9466 } 9467 break; 9468 case INSTRUCTION_FORMAT21c_TYPE: 9469 { 9470 alt51=12; 9471 } 9472 break; 9473 case INSTRUCTION_FORMAT21ih: 9474 { 9475 alt51=13; 9476 } 9477 break; 9478 case INSTRUCTION_FORMAT21lh: 9479 { 9480 alt51=14; 9481 } 9482 break; 9483 case INSTRUCTION_FORMAT21s: 9484 { 9485 alt51=15; 9486 } 9487 break; 9488 case INSTRUCTION_FORMAT21t: 9489 { 9490 alt51=16; 9491 } 9492 break; 9493 case INSTRUCTION_FORMAT22b: 9494 { 9495 alt51=17; 9496 } 9497 break; 9498 case INSTRUCTION_FORMAT22c_FIELD: 9499 { 9500 alt51=18; 9501 } 9502 break; 9503 case INSTRUCTION_FORMAT22c_FIELD_ODEX: 9504 { 9505 alt51=19; 9506 } 9507 break; 9508 case INSTRUCTION_FORMAT22c_TYPE: 9509 { 9510 alt51=20; 9511 } 9512 break; 9513 case INSTRUCTION_FORMAT22cs_FIELD: 9514 { 9515 alt51=21; 9516 } 9517 break; 9518 case INSTRUCTION_FORMAT22s: 9519 case INSTRUCTION_FORMAT22s_OR_ID: 9520 { 9521 alt51=22; 9522 } 9523 break; 9524 case INSTRUCTION_FORMAT22t: 9525 { 9526 alt51=23; 9527 } 9528 break; 9529 case INSTRUCTION_FORMAT22x: 9530 { 9531 alt51=24; 9532 } 9533 break; 9534 case INSTRUCTION_FORMAT23x: 9535 { 9536 alt51=25; 9537 } 9538 break; 9539 case INSTRUCTION_FORMAT30t: 9540 { 9541 alt51=26; 9542 } 9543 break; 9544 case INSTRUCTION_FORMAT31c: 9545 { 9546 alt51=27; 9547 } 9548 break; 9549 case INSTRUCTION_FORMAT31i: 9550 case INSTRUCTION_FORMAT31i_OR_ID: 9551 { 9552 alt51=28; 9553 } 9554 break; 9555 case INSTRUCTION_FORMAT31t: 9556 { 9557 alt51=29; 9558 } 9559 break; 9560 case INSTRUCTION_FORMAT32x: 9561 { 9562 alt51=30; 9563 } 9564 break; 9565 case INSTRUCTION_FORMAT35c_METHOD: 9566 { 9567 alt51=31; 9568 } 9569 break; 9570 case INSTRUCTION_FORMAT35c_TYPE: 9571 { 9572 alt51=32; 9573 } 9574 break; 9575 case INSTRUCTION_FORMAT35c_METHOD_ODEX: 9576 { 9577 alt51=33; 9578 } 9579 break; 9580 case INSTRUCTION_FORMAT35mi_METHOD: 9581 { 9582 alt51=34; 9583 } 9584 break; 9585 case INSTRUCTION_FORMAT35ms_METHOD: 9586 { 9587 alt51=35; 9588 } 9589 break; 9590 case INSTRUCTION_FORMAT3rc_METHOD: 9591 { 9592 alt51=36; 9593 } 9594 break; 9595 case INSTRUCTION_FORMAT3rc_METHOD_ODEX: 9596 { 9597 alt51=37; 9598 } 9599 break; 9600 case INSTRUCTION_FORMAT3rc_TYPE: 9601 { 9602 alt51=38; 9603 } 9604 break; 9605 case INSTRUCTION_FORMAT3rmi_METHOD: 9606 { 9607 alt51=39; 9608 } 9609 break; 9610 case INSTRUCTION_FORMAT3rms_METHOD: 9611 { 9612 alt51=40; 9613 } 9614 break; 9615 case INSTRUCTION_FORMAT45cc_METHOD: 9616 { 9617 alt51=41; 9618 } 9619 break; 9620 case INSTRUCTION_FORMAT4rcc_METHOD: 9621 { 9622 alt51=42; 9623 } 9624 break; 9625 case INSTRUCTION_FORMAT51l: 9626 { 9627 alt51=43; 9628 } 9629 break; 9630 case ARRAY_DATA_DIRECTIVE: 9631 { 9632 alt51=44; 9633 } 9634 break; 9635 case PACKED_SWITCH_DIRECTIVE: 9636 { 9637 alt51=45; 9638 } 9639 break; 9640 case SPARSE_SWITCH_DIRECTIVE: 9641 { 9642 alt51=46; 9643 } 9644 break; 9645 default: 9646 NoViableAltException nvae = 9647 new NoViableAltException("", 51, 0, input); 9648 throw nvae; 9649 } 9650 switch (alt51) { 9651 case 1 : 9652 // smaliParser.g:802:5: insn_format10t 9653 { 9654 root_0 = (CommonTree)adaptor.nil(); 9655 9656 9657 pushFollow(FOLLOW_insn_format10t_in_instruction3740); 9658 insn_format10t241=insn_format10t(); 9659 state._fsp--; 9660 9661 adaptor.addChild(root_0, insn_format10t241.getTree()); 9662 9663 } 9664 break; 9665 case 2 : 9666 // smaliParser.g:803:5: insn_format10x 9667 { 9668 root_0 = (CommonTree)adaptor.nil(); 9669 9670 9671 pushFollow(FOLLOW_insn_format10x_in_instruction3746); 9672 insn_format10x242=insn_format10x(); 9673 state._fsp--; 9674 9675 adaptor.addChild(root_0, insn_format10x242.getTree()); 9676 9677 } 9678 break; 9679 case 3 : 9680 // smaliParser.g:804:5: insn_format10x_odex 9681 { 9682 root_0 = (CommonTree)adaptor.nil(); 9683 9684 9685 pushFollow(FOLLOW_insn_format10x_odex_in_instruction3752); 9686 insn_format10x_odex243=insn_format10x_odex(); 9687 state._fsp--; 9688 9689 adaptor.addChild(root_0, insn_format10x_odex243.getTree()); 9690 9691 } 9692 break; 9693 case 4 : 9694 // smaliParser.g:805:5: insn_format11n 9695 { 9696 root_0 = (CommonTree)adaptor.nil(); 9697 9698 9699 pushFollow(FOLLOW_insn_format11n_in_instruction3758); 9700 insn_format11n244=insn_format11n(); 9701 state._fsp--; 9702 9703 adaptor.addChild(root_0, insn_format11n244.getTree()); 9704 9705 } 9706 break; 9707 case 5 : 9708 // smaliParser.g:806:5: insn_format11x 9709 { 9710 root_0 = (CommonTree)adaptor.nil(); 9711 9712 9713 pushFollow(FOLLOW_insn_format11x_in_instruction3764); 9714 insn_format11x245=insn_format11x(); 9715 state._fsp--; 9716 9717 adaptor.addChild(root_0, insn_format11x245.getTree()); 9718 9719 } 9720 break; 9721 case 6 : 9722 // smaliParser.g:807:5: insn_format12x 9723 { 9724 root_0 = (CommonTree)adaptor.nil(); 9725 9726 9727 pushFollow(FOLLOW_insn_format12x_in_instruction3770); 9728 insn_format12x246=insn_format12x(); 9729 state._fsp--; 9730 9731 adaptor.addChild(root_0, insn_format12x246.getTree()); 9732 9733 } 9734 break; 9735 case 7 : 9736 // smaliParser.g:808:5: insn_format20bc 9737 { 9738 root_0 = (CommonTree)adaptor.nil(); 9739 9740 9741 pushFollow(FOLLOW_insn_format20bc_in_instruction3776); 9742 insn_format20bc247=insn_format20bc(); 9743 state._fsp--; 9744 9745 adaptor.addChild(root_0, insn_format20bc247.getTree()); 9746 9747 } 9748 break; 9749 case 8 : 9750 // smaliParser.g:809:5: insn_format20t 9751 { 9752 root_0 = (CommonTree)adaptor.nil(); 9753 9754 9755 pushFollow(FOLLOW_insn_format20t_in_instruction3782); 9756 insn_format20t248=insn_format20t(); 9757 state._fsp--; 9758 9759 adaptor.addChild(root_0, insn_format20t248.getTree()); 9760 9761 } 9762 break; 9763 case 9 : 9764 // smaliParser.g:810:5: insn_format21c_field 9765 { 9766 root_0 = (CommonTree)adaptor.nil(); 9767 9768 9769 pushFollow(FOLLOW_insn_format21c_field_in_instruction3788); 9770 insn_format21c_field249=insn_format21c_field(); 9771 state._fsp--; 9772 9773 adaptor.addChild(root_0, insn_format21c_field249.getTree()); 9774 9775 } 9776 break; 9777 case 10 : 9778 // smaliParser.g:811:5: insn_format21c_field_odex 9779 { 9780 root_0 = (CommonTree)adaptor.nil(); 9781 9782 9783 pushFollow(FOLLOW_insn_format21c_field_odex_in_instruction3794); 9784 insn_format21c_field_odex250=insn_format21c_field_odex(); 9785 state._fsp--; 9786 9787 adaptor.addChild(root_0, insn_format21c_field_odex250.getTree()); 9788 9789 } 9790 break; 9791 case 11 : 9792 // smaliParser.g:812:5: insn_format21c_string 9793 { 9794 root_0 = (CommonTree)adaptor.nil(); 9795 9796 9797 pushFollow(FOLLOW_insn_format21c_string_in_instruction3800); 9798 insn_format21c_string251=insn_format21c_string(); 9799 state._fsp--; 9800 9801 adaptor.addChild(root_0, insn_format21c_string251.getTree()); 9802 9803 } 9804 break; 9805 case 12 : 9806 // smaliParser.g:813:5: insn_format21c_type 9807 { 9808 root_0 = (CommonTree)adaptor.nil(); 9809 9810 9811 pushFollow(FOLLOW_insn_format21c_type_in_instruction3806); 9812 insn_format21c_type252=insn_format21c_type(); 9813 state._fsp--; 9814 9815 adaptor.addChild(root_0, insn_format21c_type252.getTree()); 9816 9817 } 9818 break; 9819 case 13 : 9820 // smaliParser.g:814:5: insn_format21ih 9821 { 9822 root_0 = (CommonTree)adaptor.nil(); 9823 9824 9825 pushFollow(FOLLOW_insn_format21ih_in_instruction3812); 9826 insn_format21ih253=insn_format21ih(); 9827 state._fsp--; 9828 9829 adaptor.addChild(root_0, insn_format21ih253.getTree()); 9830 9831 } 9832 break; 9833 case 14 : 9834 // smaliParser.g:815:5: insn_format21lh 9835 { 9836 root_0 = (CommonTree)adaptor.nil(); 9837 9838 9839 pushFollow(FOLLOW_insn_format21lh_in_instruction3818); 9840 insn_format21lh254=insn_format21lh(); 9841 state._fsp--; 9842 9843 adaptor.addChild(root_0, insn_format21lh254.getTree()); 9844 9845 } 9846 break; 9847 case 15 : 9848 // smaliParser.g:816:5: insn_format21s 9849 { 9850 root_0 = (CommonTree)adaptor.nil(); 9851 9852 9853 pushFollow(FOLLOW_insn_format21s_in_instruction3824); 9854 insn_format21s255=insn_format21s(); 9855 state._fsp--; 9856 9857 adaptor.addChild(root_0, insn_format21s255.getTree()); 9858 9859 } 9860 break; 9861 case 16 : 9862 // smaliParser.g:817:5: insn_format21t 9863 { 9864 root_0 = (CommonTree)adaptor.nil(); 9865 9866 9867 pushFollow(FOLLOW_insn_format21t_in_instruction3830); 9868 insn_format21t256=insn_format21t(); 9869 state._fsp--; 9870 9871 adaptor.addChild(root_0, insn_format21t256.getTree()); 9872 9873 } 9874 break; 9875 case 17 : 9876 // smaliParser.g:818:5: insn_format22b 9877 { 9878 root_0 = (CommonTree)adaptor.nil(); 9879 9880 9881 pushFollow(FOLLOW_insn_format22b_in_instruction3836); 9882 insn_format22b257=insn_format22b(); 9883 state._fsp--; 9884 9885 adaptor.addChild(root_0, insn_format22b257.getTree()); 9886 9887 } 9888 break; 9889 case 18 : 9890 // smaliParser.g:819:5: insn_format22c_field 9891 { 9892 root_0 = (CommonTree)adaptor.nil(); 9893 9894 9895 pushFollow(FOLLOW_insn_format22c_field_in_instruction3842); 9896 insn_format22c_field258=insn_format22c_field(); 9897 state._fsp--; 9898 9899 adaptor.addChild(root_0, insn_format22c_field258.getTree()); 9900 9901 } 9902 break; 9903 case 19 : 9904 // smaliParser.g:820:5: insn_format22c_field_odex 9905 { 9906 root_0 = (CommonTree)adaptor.nil(); 9907 9908 9909 pushFollow(FOLLOW_insn_format22c_field_odex_in_instruction3848); 9910 insn_format22c_field_odex259=insn_format22c_field_odex(); 9911 state._fsp--; 9912 9913 adaptor.addChild(root_0, insn_format22c_field_odex259.getTree()); 9914 9915 } 9916 break; 9917 case 20 : 9918 // smaliParser.g:821:5: insn_format22c_type 9919 { 9920 root_0 = (CommonTree)adaptor.nil(); 9921 9922 9923 pushFollow(FOLLOW_insn_format22c_type_in_instruction3854); 9924 insn_format22c_type260=insn_format22c_type(); 9925 state._fsp--; 9926 9927 adaptor.addChild(root_0, insn_format22c_type260.getTree()); 9928 9929 } 9930 break; 9931 case 21 : 9932 // smaliParser.g:822:5: insn_format22cs_field 9933 { 9934 root_0 = (CommonTree)adaptor.nil(); 9935 9936 9937 pushFollow(FOLLOW_insn_format22cs_field_in_instruction3860); 9938 insn_format22cs_field261=insn_format22cs_field(); 9939 state._fsp--; 9940 9941 adaptor.addChild(root_0, insn_format22cs_field261.getTree()); 9942 9943 } 9944 break; 9945 case 22 : 9946 // smaliParser.g:823:5: insn_format22s 9947 { 9948 root_0 = (CommonTree)adaptor.nil(); 9949 9950 9951 pushFollow(FOLLOW_insn_format22s_in_instruction3866); 9952 insn_format22s262=insn_format22s(); 9953 state._fsp--; 9954 9955 adaptor.addChild(root_0, insn_format22s262.getTree()); 9956 9957 } 9958 break; 9959 case 23 : 9960 // smaliParser.g:824:5: insn_format22t 9961 { 9962 root_0 = (CommonTree)adaptor.nil(); 9963 9964 9965 pushFollow(FOLLOW_insn_format22t_in_instruction3872); 9966 insn_format22t263=insn_format22t(); 9967 state._fsp--; 9968 9969 adaptor.addChild(root_0, insn_format22t263.getTree()); 9970 9971 } 9972 break; 9973 case 24 : 9974 // smaliParser.g:825:5: insn_format22x 9975 { 9976 root_0 = (CommonTree)adaptor.nil(); 9977 9978 9979 pushFollow(FOLLOW_insn_format22x_in_instruction3878); 9980 insn_format22x264=insn_format22x(); 9981 state._fsp--; 9982 9983 adaptor.addChild(root_0, insn_format22x264.getTree()); 9984 9985 } 9986 break; 9987 case 25 : 9988 // smaliParser.g:826:5: insn_format23x 9989 { 9990 root_0 = (CommonTree)adaptor.nil(); 9991 9992 9993 pushFollow(FOLLOW_insn_format23x_in_instruction3884); 9994 insn_format23x265=insn_format23x(); 9995 state._fsp--; 9996 9997 adaptor.addChild(root_0, insn_format23x265.getTree()); 9998 9999 } 10000 break; 10001 case 26 : 10002 // smaliParser.g:827:5: insn_format30t 10003 { 10004 root_0 = (CommonTree)adaptor.nil(); 10005 10006 10007 pushFollow(FOLLOW_insn_format30t_in_instruction3890); 10008 insn_format30t266=insn_format30t(); 10009 state._fsp--; 10010 10011 adaptor.addChild(root_0, insn_format30t266.getTree()); 10012 10013 } 10014 break; 10015 case 27 : 10016 // smaliParser.g:828:5: insn_format31c 10017 { 10018 root_0 = (CommonTree)adaptor.nil(); 10019 10020 10021 pushFollow(FOLLOW_insn_format31c_in_instruction3896); 10022 insn_format31c267=insn_format31c(); 10023 state._fsp--; 10024 10025 adaptor.addChild(root_0, insn_format31c267.getTree()); 10026 10027 } 10028 break; 10029 case 28 : 10030 // smaliParser.g:829:5: insn_format31i 10031 { 10032 root_0 = (CommonTree)adaptor.nil(); 10033 10034 10035 pushFollow(FOLLOW_insn_format31i_in_instruction3902); 10036 insn_format31i268=insn_format31i(); 10037 state._fsp--; 10038 10039 adaptor.addChild(root_0, insn_format31i268.getTree()); 10040 10041 } 10042 break; 10043 case 29 : 10044 // smaliParser.g:830:5: insn_format31t 10045 { 10046 root_0 = (CommonTree)adaptor.nil(); 10047 10048 10049 pushFollow(FOLLOW_insn_format31t_in_instruction3908); 10050 insn_format31t269=insn_format31t(); 10051 state._fsp--; 10052 10053 adaptor.addChild(root_0, insn_format31t269.getTree()); 10054 10055 } 10056 break; 10057 case 30 : 10058 // smaliParser.g:831:5: insn_format32x 10059 { 10060 root_0 = (CommonTree)adaptor.nil(); 10061 10062 10063 pushFollow(FOLLOW_insn_format32x_in_instruction3914); 10064 insn_format32x270=insn_format32x(); 10065 state._fsp--; 10066 10067 adaptor.addChild(root_0, insn_format32x270.getTree()); 10068 10069 } 10070 break; 10071 case 31 : 10072 // smaliParser.g:832:5: insn_format35c_method 10073 { 10074 root_0 = (CommonTree)adaptor.nil(); 10075 10076 10077 pushFollow(FOLLOW_insn_format35c_method_in_instruction3920); 10078 insn_format35c_method271=insn_format35c_method(); 10079 state._fsp--; 10080 10081 adaptor.addChild(root_0, insn_format35c_method271.getTree()); 10082 10083 } 10084 break; 10085 case 32 : 10086 // smaliParser.g:833:5: insn_format35c_type 10087 { 10088 root_0 = (CommonTree)adaptor.nil(); 10089 10090 10091 pushFollow(FOLLOW_insn_format35c_type_in_instruction3926); 10092 insn_format35c_type272=insn_format35c_type(); 10093 state._fsp--; 10094 10095 adaptor.addChild(root_0, insn_format35c_type272.getTree()); 10096 10097 } 10098 break; 10099 case 33 : 10100 // smaliParser.g:834:5: insn_format35c_method_odex 10101 { 10102 root_0 = (CommonTree)adaptor.nil(); 10103 10104 10105 pushFollow(FOLLOW_insn_format35c_method_odex_in_instruction3932); 10106 insn_format35c_method_odex273=insn_format35c_method_odex(); 10107 state._fsp--; 10108 10109 adaptor.addChild(root_0, insn_format35c_method_odex273.getTree()); 10110 10111 } 10112 break; 10113 case 34 : 10114 // smaliParser.g:835:5: insn_format35mi_method 10115 { 10116 root_0 = (CommonTree)adaptor.nil(); 10117 10118 10119 pushFollow(FOLLOW_insn_format35mi_method_in_instruction3938); 10120 insn_format35mi_method274=insn_format35mi_method(); 10121 state._fsp--; 10122 10123 adaptor.addChild(root_0, insn_format35mi_method274.getTree()); 10124 10125 } 10126 break; 10127 case 35 : 10128 // smaliParser.g:836:5: insn_format35ms_method 10129 { 10130 root_0 = (CommonTree)adaptor.nil(); 10131 10132 10133 pushFollow(FOLLOW_insn_format35ms_method_in_instruction3944); 10134 insn_format35ms_method275=insn_format35ms_method(); 10135 state._fsp--; 10136 10137 adaptor.addChild(root_0, insn_format35ms_method275.getTree()); 10138 10139 } 10140 break; 10141 case 36 : 10142 // smaliParser.g:837:5: insn_format3rc_method 10143 { 10144 root_0 = (CommonTree)adaptor.nil(); 10145 10146 10147 pushFollow(FOLLOW_insn_format3rc_method_in_instruction3950); 10148 insn_format3rc_method276=insn_format3rc_method(); 10149 state._fsp--; 10150 10151 adaptor.addChild(root_0, insn_format3rc_method276.getTree()); 10152 10153 } 10154 break; 10155 case 37 : 10156 // smaliParser.g:838:5: insn_format3rc_method_odex 10157 { 10158 root_0 = (CommonTree)adaptor.nil(); 10159 10160 10161 pushFollow(FOLLOW_insn_format3rc_method_odex_in_instruction3956); 10162 insn_format3rc_method_odex277=insn_format3rc_method_odex(); 10163 state._fsp--; 10164 10165 adaptor.addChild(root_0, insn_format3rc_method_odex277.getTree()); 10166 10167 } 10168 break; 10169 case 38 : 10170 // smaliParser.g:839:5: insn_format3rc_type 10171 { 10172 root_0 = (CommonTree)adaptor.nil(); 10173 10174 10175 pushFollow(FOLLOW_insn_format3rc_type_in_instruction3962); 10176 insn_format3rc_type278=insn_format3rc_type(); 10177 state._fsp--; 10178 10179 adaptor.addChild(root_0, insn_format3rc_type278.getTree()); 10180 10181 } 10182 break; 10183 case 39 : 10184 // smaliParser.g:840:5: insn_format3rmi_method 10185 { 10186 root_0 = (CommonTree)adaptor.nil(); 10187 10188 10189 pushFollow(FOLLOW_insn_format3rmi_method_in_instruction3968); 10190 insn_format3rmi_method279=insn_format3rmi_method(); 10191 state._fsp--; 10192 10193 adaptor.addChild(root_0, insn_format3rmi_method279.getTree()); 10194 10195 } 10196 break; 10197 case 40 : 10198 // smaliParser.g:841:5: insn_format3rms_method 10199 { 10200 root_0 = (CommonTree)adaptor.nil(); 10201 10202 10203 pushFollow(FOLLOW_insn_format3rms_method_in_instruction3974); 10204 insn_format3rms_method280=insn_format3rms_method(); 10205 state._fsp--; 10206 10207 adaptor.addChild(root_0, insn_format3rms_method280.getTree()); 10208 10209 } 10210 break; 10211 case 41 : 10212 // smaliParser.g:842:5: insn_format45cc_method 10213 { 10214 root_0 = (CommonTree)adaptor.nil(); 10215 10216 10217 pushFollow(FOLLOW_insn_format45cc_method_in_instruction3980); 10218 insn_format45cc_method281=insn_format45cc_method(); 10219 state._fsp--; 10220 10221 adaptor.addChild(root_0, insn_format45cc_method281.getTree()); 10222 10223 } 10224 break; 10225 case 42 : 10226 // smaliParser.g:843:5: insn_format4rcc_method 10227 { 10228 root_0 = (CommonTree)adaptor.nil(); 10229 10230 10231 pushFollow(FOLLOW_insn_format4rcc_method_in_instruction3986); 10232 insn_format4rcc_method282=insn_format4rcc_method(); 10233 state._fsp--; 10234 10235 adaptor.addChild(root_0, insn_format4rcc_method282.getTree()); 10236 10237 } 10238 break; 10239 case 43 : 10240 // smaliParser.g:844:5: insn_format51l 10241 { 10242 root_0 = (CommonTree)adaptor.nil(); 10243 10244 10245 pushFollow(FOLLOW_insn_format51l_in_instruction3992); 10246 insn_format51l283=insn_format51l(); 10247 state._fsp--; 10248 10249 adaptor.addChild(root_0, insn_format51l283.getTree()); 10250 10251 } 10252 break; 10253 case 44 : 10254 // smaliParser.g:845:5: insn_array_data_directive 10255 { 10256 root_0 = (CommonTree)adaptor.nil(); 10257 10258 10259 pushFollow(FOLLOW_insn_array_data_directive_in_instruction3998); 10260 insn_array_data_directive284=insn_array_data_directive(); 10261 state._fsp--; 10262 10263 adaptor.addChild(root_0, insn_array_data_directive284.getTree()); 10264 10265 } 10266 break; 10267 case 45 : 10268 // smaliParser.g:846:5: insn_packed_switch_directive 10269 { 10270 root_0 = (CommonTree)adaptor.nil(); 10271 10272 10273 pushFollow(FOLLOW_insn_packed_switch_directive_in_instruction4004); 10274 insn_packed_switch_directive285=insn_packed_switch_directive(); 10275 state._fsp--; 10276 10277 adaptor.addChild(root_0, insn_packed_switch_directive285.getTree()); 10278 10279 } 10280 break; 10281 case 46 : 10282 // smaliParser.g:847:5: insn_sparse_switch_directive 10283 { 10284 root_0 = (CommonTree)adaptor.nil(); 10285 10286 10287 pushFollow(FOLLOW_insn_sparse_switch_directive_in_instruction4010); 10288 insn_sparse_switch_directive286=insn_sparse_switch_directive(); 10289 state._fsp--; 10290 10291 adaptor.addChild(root_0, insn_sparse_switch_directive286.getTree()); 10292 10293 } 10294 break; 10295 10296 } 10297 retval.stop = input.LT(-1); 10298 10299 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 10300 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 10301 10302 } 10303 catch (RecognitionException re) { 10304 reportError(re); 10305 recover(input,re); 10306 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 10307 } 10308 finally { 10309 // do for sure before leaving 10310 } 10311 return retval; 10312 } 10313 // $ANTLR end "instruction" 10314 10315 10316 public static class insn_format10t_return extends ParserRuleReturnScope { 10317 CommonTree tree; 10318 @Override 10319 public CommonTree getTree() { return tree; } 10320 }; 10321 10322 10323 // $ANTLR start "insn_format10t" 10324 // smaliParser.g:849:1: insn_format10t : INSTRUCTION_FORMAT10t label_ref -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref ) ; 10325 public final smaliParser.insn_format10t_return insn_format10t() throws RecognitionException { 10326 smaliParser.insn_format10t_return retval = new smaliParser.insn_format10t_return(); 10327 retval.start = input.LT(1); 10328 10329 CommonTree root_0 = null; 10330 10331 Token INSTRUCTION_FORMAT10t287=null; 10332 ParserRuleReturnScope label_ref288 =null; 10333 10334 CommonTree INSTRUCTION_FORMAT10t287_tree=null; 10335 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10t"); 10336 RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref"); 10337 10338 try { 10339 // smaliParser.g:850:3: ( INSTRUCTION_FORMAT10t label_ref -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref ) ) 10340 // smaliParser.g:852:5: INSTRUCTION_FORMAT10t label_ref 10341 { 10342 INSTRUCTION_FORMAT10t287=(Token)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t4030); 10343 stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t287); 10344 10345 pushFollow(FOLLOW_label_ref_in_insn_format10t4032); 10346 label_ref288=label_ref(); 10347 state._fsp--; 10348 10349 stream_label_ref.add(label_ref288.getTree()); 10350 // AST REWRITE 10351 // elements: INSTRUCTION_FORMAT10t, label_ref 10352 // token labels: 10353 // rule labels: retval 10354 // token list labels: 10355 // rule list labels: 10356 // wildcard labels: 10357 retval.tree = root_0; 10358 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 10359 10360 root_0 = (CommonTree)adaptor.nil(); 10361 // 853:5: -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref ) 10362 { 10363 // smaliParser.g:853:8: ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref ) 10364 { 10365 CommonTree root_1 = (CommonTree)adaptor.nil(); 10366 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10t, (retval.start), "I_STATEMENT_FORMAT10t"), root_1); 10367 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10t.nextNode()); 10368 adaptor.addChild(root_1, stream_label_ref.nextTree()); 10369 adaptor.addChild(root_0, root_1); 10370 } 10371 10372 } 10373 10374 10375 retval.tree = root_0; 10376 10377 } 10378 10379 retval.stop = input.LT(-1); 10380 10381 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 10382 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 10383 10384 } 10385 catch (RecognitionException re) { 10386 reportError(re); 10387 recover(input,re); 10388 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 10389 } 10390 finally { 10391 // do for sure before leaving 10392 } 10393 return retval; 10394 } 10395 // $ANTLR end "insn_format10t" 10396 10397 10398 public static class insn_format10x_return extends ParserRuleReturnScope { 10399 CommonTree tree; 10400 @Override 10401 public CommonTree getTree() { return tree; } 10402 }; 10403 10404 10405 // $ANTLR start "insn_format10x" 10406 // smaliParser.g:855:1: insn_format10x : INSTRUCTION_FORMAT10x -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) ; 10407 public final smaliParser.insn_format10x_return insn_format10x() throws RecognitionException { 10408 smaliParser.insn_format10x_return retval = new smaliParser.insn_format10x_return(); 10409 retval.start = input.LT(1); 10410 10411 CommonTree root_0 = null; 10412 10413 Token INSTRUCTION_FORMAT10x289=null; 10414 10415 CommonTree INSTRUCTION_FORMAT10x289_tree=null; 10416 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x"); 10417 10418 try { 10419 // smaliParser.g:856:3: ( INSTRUCTION_FORMAT10x -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) ) 10420 // smaliParser.g:857:5: INSTRUCTION_FORMAT10x 10421 { 10422 INSTRUCTION_FORMAT10x289=(Token)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x4062); 10423 stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x289); 10424 10425 // AST REWRITE 10426 // elements: INSTRUCTION_FORMAT10x 10427 // token labels: 10428 // rule labels: retval 10429 // token list labels: 10430 // rule list labels: 10431 // wildcard labels: 10432 retval.tree = root_0; 10433 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 10434 10435 root_0 = (CommonTree)adaptor.nil(); 10436 // 858:5: -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) 10437 { 10438 // smaliParser.g:858:8: ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) 10439 { 10440 CommonTree root_1 = (CommonTree)adaptor.nil(); 10441 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10x, (retval.start), "I_STATEMENT_FORMAT10x"), root_1); 10442 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10x.nextNode()); 10443 adaptor.addChild(root_0, root_1); 10444 } 10445 10446 } 10447 10448 10449 retval.tree = root_0; 10450 10451 } 10452 10453 retval.stop = input.LT(-1); 10454 10455 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 10456 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 10457 10458 } 10459 catch (RecognitionException re) { 10460 reportError(re); 10461 recover(input,re); 10462 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 10463 } 10464 finally { 10465 // do for sure before leaving 10466 } 10467 return retval; 10468 } 10469 // $ANTLR end "insn_format10x" 10470 10471 10472 public static class insn_format10x_odex_return extends ParserRuleReturnScope { 10473 CommonTree tree; 10474 @Override 10475 public CommonTree getTree() { return tree; } 10476 }; 10477 10478 10479 // $ANTLR start "insn_format10x_odex" 10480 // smaliParser.g:860:1: insn_format10x_odex : INSTRUCTION_FORMAT10x_ODEX ; 10481 public final smaliParser.insn_format10x_odex_return insn_format10x_odex() throws RecognitionException { 10482 smaliParser.insn_format10x_odex_return retval = new smaliParser.insn_format10x_odex_return(); 10483 retval.start = input.LT(1); 10484 10485 CommonTree root_0 = null; 10486 10487 Token INSTRUCTION_FORMAT10x_ODEX290=null; 10488 10489 CommonTree INSTRUCTION_FORMAT10x_ODEX290_tree=null; 10490 10491 try { 10492 // smaliParser.g:861:3: ( INSTRUCTION_FORMAT10x_ODEX ) 10493 // smaliParser.g:862:5: INSTRUCTION_FORMAT10x_ODEX 10494 { 10495 root_0 = (CommonTree)adaptor.nil(); 10496 10497 10498 INSTRUCTION_FORMAT10x_ODEX290=(Token)match(input,INSTRUCTION_FORMAT10x_ODEX,FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_insn_format10x_odex4090); 10499 INSTRUCTION_FORMAT10x_ODEX290_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT10x_ODEX290); 10500 adaptor.addChild(root_0, INSTRUCTION_FORMAT10x_ODEX290_tree); 10501 10502 10503 throwOdexedInstructionException(input, (INSTRUCTION_FORMAT10x_ODEX290!=null?INSTRUCTION_FORMAT10x_ODEX290.getText():null)); 10504 10505 } 10506 10507 retval.stop = input.LT(-1); 10508 10509 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 10510 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 10511 10512 } 10513 catch (RecognitionException re) { 10514 reportError(re); 10515 recover(input,re); 10516 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 10517 } 10518 finally { 10519 // do for sure before leaving 10520 } 10521 return retval; 10522 } 10523 // $ANTLR end "insn_format10x_odex" 10524 10525 10526 public static class insn_format11n_return extends ParserRuleReturnScope { 10527 CommonTree tree; 10528 @Override 10529 public CommonTree getTree() { return tree; } 10530 }; 10531 10532 10533 // $ANTLR start "insn_format11n" 10534 // smaliParser.g:867:1: insn_format11n : INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) ; 10535 public final smaliParser.insn_format11n_return insn_format11n() throws RecognitionException { 10536 smaliParser.insn_format11n_return retval = new smaliParser.insn_format11n_return(); 10537 retval.start = input.LT(1); 10538 10539 CommonTree root_0 = null; 10540 10541 Token INSTRUCTION_FORMAT11n291=null; 10542 Token REGISTER292=null; 10543 Token COMMA293=null; 10544 ParserRuleReturnScope integral_literal294 =null; 10545 10546 CommonTree INSTRUCTION_FORMAT11n291_tree=null; 10547 CommonTree REGISTER292_tree=null; 10548 CommonTree COMMA293_tree=null; 10549 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 10550 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 10551 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11n=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11n"); 10552 RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal"); 10553 10554 try { 10555 // smaliParser.g:868:3: ( INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) ) 10556 // smaliParser.g:869:5: INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal 10557 { 10558 INSTRUCTION_FORMAT11n291=(Token)match(input,INSTRUCTION_FORMAT11n,FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n4111); 10559 stream_INSTRUCTION_FORMAT11n.add(INSTRUCTION_FORMAT11n291); 10560 10561 REGISTER292=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11n4113); 10562 stream_REGISTER.add(REGISTER292); 10563 10564 COMMA293=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format11n4115); 10565 stream_COMMA.add(COMMA293); 10566 10567 pushFollow(FOLLOW_integral_literal_in_insn_format11n4117); 10568 integral_literal294=integral_literal(); 10569 state._fsp--; 10570 10571 stream_integral_literal.add(integral_literal294.getTree()); 10572 // AST REWRITE 10573 // elements: integral_literal, INSTRUCTION_FORMAT11n, REGISTER 10574 // token labels: 10575 // rule labels: retval 10576 // token list labels: 10577 // rule list labels: 10578 // wildcard labels: 10579 retval.tree = root_0; 10580 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 10581 10582 root_0 = (CommonTree)adaptor.nil(); 10583 // 870:5: -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) 10584 { 10585 // smaliParser.g:870:8: ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) 10586 { 10587 CommonTree root_1 = (CommonTree)adaptor.nil(); 10588 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT11n, (retval.start), "I_STATEMENT_FORMAT11n"), root_1); 10589 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11n.nextNode()); 10590 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 10591 adaptor.addChild(root_1, stream_integral_literal.nextTree()); 10592 adaptor.addChild(root_0, root_1); 10593 } 10594 10595 } 10596 10597 10598 retval.tree = root_0; 10599 10600 } 10601 10602 retval.stop = input.LT(-1); 10603 10604 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 10605 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 10606 10607 } 10608 catch (RecognitionException re) { 10609 reportError(re); 10610 recover(input,re); 10611 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 10612 } 10613 finally { 10614 // do for sure before leaving 10615 } 10616 return retval; 10617 } 10618 // $ANTLR end "insn_format11n" 10619 10620 10621 public static class insn_format11x_return extends ParserRuleReturnScope { 10622 CommonTree tree; 10623 @Override 10624 public CommonTree getTree() { return tree; } 10625 }; 10626 10627 10628 // $ANTLR start "insn_format11x" 10629 // smaliParser.g:872:1: insn_format11x : INSTRUCTION_FORMAT11x REGISTER -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) ; 10630 public final smaliParser.insn_format11x_return insn_format11x() throws RecognitionException { 10631 smaliParser.insn_format11x_return retval = new smaliParser.insn_format11x_return(); 10632 retval.start = input.LT(1); 10633 10634 CommonTree root_0 = null; 10635 10636 Token INSTRUCTION_FORMAT11x295=null; 10637 Token REGISTER296=null; 10638 10639 CommonTree INSTRUCTION_FORMAT11x295_tree=null; 10640 CommonTree REGISTER296_tree=null; 10641 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 10642 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11x"); 10643 10644 try { 10645 // smaliParser.g:873:3: ( INSTRUCTION_FORMAT11x REGISTER -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) ) 10646 // smaliParser.g:874:5: INSTRUCTION_FORMAT11x REGISTER 10647 { 10648 INSTRUCTION_FORMAT11x295=(Token)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x4149); 10649 stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x295); 10650 10651 REGISTER296=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11x4151); 10652 stream_REGISTER.add(REGISTER296); 10653 10654 // AST REWRITE 10655 // elements: REGISTER, INSTRUCTION_FORMAT11x 10656 // token labels: 10657 // rule labels: retval 10658 // token list labels: 10659 // rule list labels: 10660 // wildcard labels: 10661 retval.tree = root_0; 10662 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 10663 10664 root_0 = (CommonTree)adaptor.nil(); 10665 // 875:5: -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) 10666 { 10667 // smaliParser.g:875:8: ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) 10668 { 10669 CommonTree root_1 = (CommonTree)adaptor.nil(); 10670 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT11x, (retval.start), "I_STATEMENT_FORMAT11x"), root_1); 10671 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11x.nextNode()); 10672 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 10673 adaptor.addChild(root_0, root_1); 10674 } 10675 10676 } 10677 10678 10679 retval.tree = root_0; 10680 10681 } 10682 10683 retval.stop = input.LT(-1); 10684 10685 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 10686 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 10687 10688 } 10689 catch (RecognitionException re) { 10690 reportError(re); 10691 recover(input,re); 10692 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 10693 } 10694 finally { 10695 // do for sure before leaving 10696 } 10697 return retval; 10698 } 10699 // $ANTLR end "insn_format11x" 10700 10701 10702 public static class insn_format12x_return extends ParserRuleReturnScope { 10703 CommonTree tree; 10704 @Override 10705 public CommonTree getTree() { return tree; } 10706 }; 10707 10708 10709 // $ANTLR start "insn_format12x" 10710 // smaliParser.g:877:1: insn_format12x : instruction_format12x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) ; 10711 public final smaliParser.insn_format12x_return insn_format12x() throws RecognitionException { 10712 smaliParser.insn_format12x_return retval = new smaliParser.insn_format12x_return(); 10713 retval.start = input.LT(1); 10714 10715 CommonTree root_0 = null; 10716 10717 Token REGISTER298=null; 10718 Token COMMA299=null; 10719 Token REGISTER300=null; 10720 ParserRuleReturnScope instruction_format12x297 =null; 10721 10722 CommonTree REGISTER298_tree=null; 10723 CommonTree COMMA299_tree=null; 10724 CommonTree REGISTER300_tree=null; 10725 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 10726 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 10727 RewriteRuleSubtreeStream stream_instruction_format12x=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format12x"); 10728 10729 try { 10730 // smaliParser.g:878:3: ( instruction_format12x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) ) 10731 // smaliParser.g:879:5: instruction_format12x REGISTER COMMA REGISTER 10732 { 10733 pushFollow(FOLLOW_instruction_format12x_in_insn_format12x4181); 10734 instruction_format12x297=instruction_format12x(); 10735 state._fsp--; 10736 10737 stream_instruction_format12x.add(instruction_format12x297.getTree()); 10738 REGISTER298=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x4183); 10739 stream_REGISTER.add(REGISTER298); 10740 10741 COMMA299=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format12x4185); 10742 stream_COMMA.add(COMMA299); 10743 10744 REGISTER300=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x4187); 10745 stream_REGISTER.add(REGISTER300); 10746 10747 // AST REWRITE 10748 // elements: REGISTER, instruction_format12x, REGISTER 10749 // token labels: 10750 // rule labels: retval 10751 // token list labels: 10752 // rule list labels: 10753 // wildcard labels: 10754 retval.tree = root_0; 10755 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 10756 10757 root_0 = (CommonTree)adaptor.nil(); 10758 // 880:5: -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) 10759 { 10760 // smaliParser.g:880:8: ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) 10761 { 10762 CommonTree root_1 = (CommonTree)adaptor.nil(); 10763 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT12x, (retval.start), "I_STATEMENT_FORMAT12x"), root_1); 10764 adaptor.addChild(root_1, stream_instruction_format12x.nextTree()); 10765 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 10766 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 10767 adaptor.addChild(root_0, root_1); 10768 } 10769 10770 } 10771 10772 10773 retval.tree = root_0; 10774 10775 } 10776 10777 retval.stop = input.LT(-1); 10778 10779 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 10780 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 10781 10782 } 10783 catch (RecognitionException re) { 10784 reportError(re); 10785 recover(input,re); 10786 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 10787 } 10788 finally { 10789 // do for sure before leaving 10790 } 10791 return retval; 10792 } 10793 // $ANTLR end "insn_format12x" 10794 10795 10796 public static class insn_format20bc_return extends ParserRuleReturnScope { 10797 CommonTree tree; 10798 @Override 10799 public CommonTree getTree() { return tree; } 10800 }; 10801 10802 10803 // $ANTLR start "insn_format20bc" 10804 // smaliParser.g:882:1: insn_format20bc : INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE COMMA verification_error_reference -> ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference ) ; 10805 public final smaliParser.insn_format20bc_return insn_format20bc() throws RecognitionException { 10806 smaliParser.insn_format20bc_return retval = new smaliParser.insn_format20bc_return(); 10807 retval.start = input.LT(1); 10808 10809 CommonTree root_0 = null; 10810 10811 Token INSTRUCTION_FORMAT20bc301=null; 10812 Token VERIFICATION_ERROR_TYPE302=null; 10813 Token COMMA303=null; 10814 ParserRuleReturnScope verification_error_reference304 =null; 10815 10816 CommonTree INSTRUCTION_FORMAT20bc301_tree=null; 10817 CommonTree VERIFICATION_ERROR_TYPE302_tree=null; 10818 CommonTree COMMA303_tree=null; 10819 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 10820 RewriteRuleTokenStream stream_VERIFICATION_ERROR_TYPE=new RewriteRuleTokenStream(adaptor,"token VERIFICATION_ERROR_TYPE"); 10821 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT20bc=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT20bc"); 10822 RewriteRuleSubtreeStream stream_verification_error_reference=new RewriteRuleSubtreeStream(adaptor,"rule verification_error_reference"); 10823 10824 try { 10825 // smaliParser.g:883:3: ( INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE COMMA verification_error_reference -> ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference ) ) 10826 // smaliParser.g:884:5: INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE COMMA verification_error_reference 10827 { 10828 INSTRUCTION_FORMAT20bc301=(Token)match(input,INSTRUCTION_FORMAT20bc,FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc4219); 10829 stream_INSTRUCTION_FORMAT20bc.add(INSTRUCTION_FORMAT20bc301); 10830 10831 VERIFICATION_ERROR_TYPE302=(Token)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_insn_format20bc4221); 10832 stream_VERIFICATION_ERROR_TYPE.add(VERIFICATION_ERROR_TYPE302); 10833 10834 COMMA303=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format20bc4223); 10835 stream_COMMA.add(COMMA303); 10836 10837 pushFollow(FOLLOW_verification_error_reference_in_insn_format20bc4225); 10838 verification_error_reference304=verification_error_reference(); 10839 state._fsp--; 10840 10841 stream_verification_error_reference.add(verification_error_reference304.getTree()); 10842 10843 if (!allowOdex || opcodes.getOpcodeByName((INSTRUCTION_FORMAT20bc301!=null?INSTRUCTION_FORMAT20bc301.getText():null)) == null || apiLevel >= 14) { 10844 throwOdexedInstructionException(input, (INSTRUCTION_FORMAT20bc301!=null?INSTRUCTION_FORMAT20bc301.getText():null)); 10845 } 10846 10847 // AST REWRITE 10848 // elements: VERIFICATION_ERROR_TYPE, verification_error_reference, INSTRUCTION_FORMAT20bc 10849 // token labels: 10850 // rule labels: retval 10851 // token list labels: 10852 // rule list labels: 10853 // wildcard labels: 10854 retval.tree = root_0; 10855 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 10856 10857 root_0 = (CommonTree)adaptor.nil(); 10858 // 890:5: -> ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference ) 10859 { 10860 // smaliParser.g:890:8: ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference ) 10861 { 10862 CommonTree root_1 = (CommonTree)adaptor.nil(); 10863 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT20bc, "I_STATEMENT_FORMAT20bc"), root_1); 10864 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT20bc.nextNode()); 10865 adaptor.addChild(root_1, stream_VERIFICATION_ERROR_TYPE.nextNode()); 10866 adaptor.addChild(root_1, stream_verification_error_reference.nextTree()); 10867 adaptor.addChild(root_0, root_1); 10868 } 10869 10870 } 10871 10872 10873 retval.tree = root_0; 10874 10875 } 10876 10877 retval.stop = input.LT(-1); 10878 10879 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 10880 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 10881 10882 } 10883 catch (RecognitionException re) { 10884 reportError(re); 10885 recover(input,re); 10886 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 10887 } 10888 finally { 10889 // do for sure before leaving 10890 } 10891 return retval; 10892 } 10893 // $ANTLR end "insn_format20bc" 10894 10895 10896 public static class insn_format20t_return extends ParserRuleReturnScope { 10897 CommonTree tree; 10898 @Override 10899 public CommonTree getTree() { return tree; } 10900 }; 10901 10902 10903 // $ANTLR start "insn_format20t" 10904 // smaliParser.g:892:1: insn_format20t : INSTRUCTION_FORMAT20t label_ref -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref ) ; 10905 public final smaliParser.insn_format20t_return insn_format20t() throws RecognitionException { 10906 smaliParser.insn_format20t_return retval = new smaliParser.insn_format20t_return(); 10907 retval.start = input.LT(1); 10908 10909 CommonTree root_0 = null; 10910 10911 Token INSTRUCTION_FORMAT20t305=null; 10912 ParserRuleReturnScope label_ref306 =null; 10913 10914 CommonTree INSTRUCTION_FORMAT20t305_tree=null; 10915 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT20t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT20t"); 10916 RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref"); 10917 10918 try { 10919 // smaliParser.g:893:3: ( INSTRUCTION_FORMAT20t label_ref -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref ) ) 10920 // smaliParser.g:894:5: INSTRUCTION_FORMAT20t label_ref 10921 { 10922 INSTRUCTION_FORMAT20t305=(Token)match(input,INSTRUCTION_FORMAT20t,FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t4262); 10923 stream_INSTRUCTION_FORMAT20t.add(INSTRUCTION_FORMAT20t305); 10924 10925 pushFollow(FOLLOW_label_ref_in_insn_format20t4264); 10926 label_ref306=label_ref(); 10927 state._fsp--; 10928 10929 stream_label_ref.add(label_ref306.getTree()); 10930 // AST REWRITE 10931 // elements: INSTRUCTION_FORMAT20t, label_ref 10932 // token labels: 10933 // rule labels: retval 10934 // token list labels: 10935 // rule list labels: 10936 // wildcard labels: 10937 retval.tree = root_0; 10938 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 10939 10940 root_0 = (CommonTree)adaptor.nil(); 10941 // 895:5: -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref ) 10942 { 10943 // smaliParser.g:895:8: ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref ) 10944 { 10945 CommonTree root_1 = (CommonTree)adaptor.nil(); 10946 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT20t, (retval.start), "I_STATEMENT_FORMAT20t"), root_1); 10947 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT20t.nextNode()); 10948 adaptor.addChild(root_1, stream_label_ref.nextTree()); 10949 adaptor.addChild(root_0, root_1); 10950 } 10951 10952 } 10953 10954 10955 retval.tree = root_0; 10956 10957 } 10958 10959 retval.stop = input.LT(-1); 10960 10961 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 10962 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 10963 10964 } 10965 catch (RecognitionException re) { 10966 reportError(re); 10967 recover(input,re); 10968 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 10969 } 10970 finally { 10971 // do for sure before leaving 10972 } 10973 return retval; 10974 } 10975 // $ANTLR end "insn_format20t" 10976 10977 10978 public static class insn_format21c_field_return extends ParserRuleReturnScope { 10979 CommonTree tree; 10980 @Override 10981 public CommonTree getTree() { return tree; } 10982 }; 10983 10984 10985 // $ANTLR start "insn_format21c_field" 10986 // smaliParser.g:897:1: insn_format21c_field : INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference ) ; 10987 public final smaliParser.insn_format21c_field_return insn_format21c_field() throws RecognitionException { 10988 smaliParser.insn_format21c_field_return retval = new smaliParser.insn_format21c_field_return(); 10989 retval.start = input.LT(1); 10990 10991 CommonTree root_0 = null; 10992 10993 Token INSTRUCTION_FORMAT21c_FIELD307=null; 10994 Token REGISTER308=null; 10995 Token COMMA309=null; 10996 ParserRuleReturnScope field_reference310 =null; 10997 10998 CommonTree INSTRUCTION_FORMAT21c_FIELD307_tree=null; 10999 CommonTree REGISTER308_tree=null; 11000 CommonTree COMMA309_tree=null; 11001 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 11002 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD"); 11003 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 11004 RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference"); 11005 11006 try { 11007 // smaliParser.g:898:3: ( INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference ) ) 11008 // smaliParser.g:899:5: INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA field_reference 11009 { 11010 INSTRUCTION_FORMAT21c_FIELD307=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_insn_format21c_field4294); 11011 stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD307); 11012 11013 REGISTER308=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field4296); 11014 stream_REGISTER.add(REGISTER308); 11015 11016 COMMA309=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_field4298); 11017 stream_COMMA.add(COMMA309); 11018 11019 pushFollow(FOLLOW_field_reference_in_insn_format21c_field4300); 11020 field_reference310=field_reference(); 11021 state._fsp--; 11022 11023 stream_field_reference.add(field_reference310.getTree()); 11024 // AST REWRITE 11025 // elements: REGISTER, INSTRUCTION_FORMAT21c_FIELD, field_reference 11026 // token labels: 11027 // rule labels: retval 11028 // token list labels: 11029 // rule list labels: 11030 // wildcard labels: 11031 retval.tree = root_0; 11032 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 11033 11034 root_0 = (CommonTree)adaptor.nil(); 11035 // 900:5: -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference ) 11036 { 11037 // smaliParser.g:900:8: ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference ) 11038 { 11039 CommonTree root_1 = (CommonTree)adaptor.nil(); 11040 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_FIELD, (retval.start), "I_STATEMENT_FORMAT21c_FIELD"), root_1); 11041 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_FIELD.nextNode()); 11042 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 11043 adaptor.addChild(root_1, stream_field_reference.nextTree()); 11044 adaptor.addChild(root_0, root_1); 11045 } 11046 11047 } 11048 11049 11050 retval.tree = root_0; 11051 11052 } 11053 11054 retval.stop = input.LT(-1); 11055 11056 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 11057 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 11058 11059 } 11060 catch (RecognitionException re) { 11061 reportError(re); 11062 recover(input,re); 11063 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 11064 } 11065 finally { 11066 // do for sure before leaving 11067 } 11068 return retval; 11069 } 11070 // $ANTLR end "insn_format21c_field" 11071 11072 11073 public static class insn_format21c_field_odex_return extends ParserRuleReturnScope { 11074 CommonTree tree; 11075 @Override 11076 public CommonTree getTree() { return tree; } 11077 }; 11078 11079 11080 // $ANTLR start "insn_format21c_field_odex" 11081 // smaliParser.g:902:1: insn_format21c_field_odex : INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference ) ; 11082 public final smaliParser.insn_format21c_field_odex_return insn_format21c_field_odex() throws RecognitionException { 11083 smaliParser.insn_format21c_field_odex_return retval = new smaliParser.insn_format21c_field_odex_return(); 11084 retval.start = input.LT(1); 11085 11086 CommonTree root_0 = null; 11087 11088 Token INSTRUCTION_FORMAT21c_FIELD_ODEX311=null; 11089 Token REGISTER312=null; 11090 Token COMMA313=null; 11091 ParserRuleReturnScope field_reference314 =null; 11092 11093 CommonTree INSTRUCTION_FORMAT21c_FIELD_ODEX311_tree=null; 11094 CommonTree REGISTER312_tree=null; 11095 CommonTree COMMA313_tree=null; 11096 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 11097 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 11098 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD_ODEX"); 11099 RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference"); 11100 11101 try { 11102 // smaliParser.g:903:3: ( INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference ) ) 11103 // smaliParser.g:904:5: INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER COMMA field_reference 11104 { 11105 INSTRUCTION_FORMAT21c_FIELD_ODEX311=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_insn_format21c_field_odex4332); 11106 stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.add(INSTRUCTION_FORMAT21c_FIELD_ODEX311); 11107 11108 REGISTER312=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field_odex4334); 11109 stream_REGISTER.add(REGISTER312); 11110 11111 COMMA313=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_field_odex4336); 11112 stream_COMMA.add(COMMA313); 11113 11114 pushFollow(FOLLOW_field_reference_in_insn_format21c_field_odex4338); 11115 field_reference314=field_reference(); 11116 state._fsp--; 11117 11118 stream_field_reference.add(field_reference314.getTree()); 11119 11120 if (!allowOdex || opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_FIELD_ODEX311!=null?INSTRUCTION_FORMAT21c_FIELD_ODEX311.getText():null)) == null || apiLevel >= 14) { 11121 throwOdexedInstructionException(input, (INSTRUCTION_FORMAT21c_FIELD_ODEX311!=null?INSTRUCTION_FORMAT21c_FIELD_ODEX311.getText():null)); 11122 } 11123 11124 // AST REWRITE 11125 // elements: INSTRUCTION_FORMAT21c_FIELD_ODEX, REGISTER, field_reference 11126 // token labels: 11127 // rule labels: retval 11128 // token list labels: 11129 // rule list labels: 11130 // wildcard labels: 11131 retval.tree = root_0; 11132 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 11133 11134 root_0 = (CommonTree)adaptor.nil(); 11135 // 910:5: -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference ) 11136 { 11137 // smaliParser.g:910:8: ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference ) 11138 { 11139 CommonTree root_1 = (CommonTree)adaptor.nil(); 11140 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_FIELD, (retval.start), "I_STATEMENT_FORMAT21c_FIELD"), root_1); 11141 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.nextNode()); 11142 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 11143 adaptor.addChild(root_1, stream_field_reference.nextTree()); 11144 adaptor.addChild(root_0, root_1); 11145 } 11146 11147 } 11148 11149 11150 retval.tree = root_0; 11151 11152 } 11153 11154 retval.stop = input.LT(-1); 11155 11156 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 11157 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 11158 11159 } 11160 catch (RecognitionException re) { 11161 reportError(re); 11162 recover(input,re); 11163 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 11164 } 11165 finally { 11166 // do for sure before leaving 11167 } 11168 return retval; 11169 } 11170 // $ANTLR end "insn_format21c_field_odex" 11171 11172 11173 public static class insn_format21c_string_return extends ParserRuleReturnScope { 11174 CommonTree tree; 11175 @Override 11176 public CommonTree getTree() { return tree; } 11177 }; 11178 11179 11180 // $ANTLR start "insn_format21c_string" 11181 // smaliParser.g:912:1: insn_format21c_string : INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) ; 11182 public final smaliParser.insn_format21c_string_return insn_format21c_string() throws RecognitionException { 11183 smaliParser.insn_format21c_string_return retval = new smaliParser.insn_format21c_string_return(); 11184 retval.start = input.LT(1); 11185 11186 CommonTree root_0 = null; 11187 11188 Token INSTRUCTION_FORMAT21c_STRING315=null; 11189 Token REGISTER316=null; 11190 Token COMMA317=null; 11191 Token STRING_LITERAL318=null; 11192 11193 CommonTree INSTRUCTION_FORMAT21c_STRING315_tree=null; 11194 CommonTree REGISTER316_tree=null; 11195 CommonTree COMMA317_tree=null; 11196 CommonTree STRING_LITERAL318_tree=null; 11197 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 11198 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 11199 RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); 11200 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_STRING"); 11201 11202 try { 11203 // smaliParser.g:913:3: ( INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) ) 11204 // smaliParser.g:914:5: INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL 11205 { 11206 INSTRUCTION_FORMAT21c_STRING315=(Token)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string4376); 11207 stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING315); 11208 11209 REGISTER316=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_string4378); 11210 stream_REGISTER.add(REGISTER316); 11211 11212 COMMA317=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_string4380); 11213 stream_COMMA.add(COMMA317); 11214 11215 STRING_LITERAL318=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_insn_format21c_string4382); 11216 stream_STRING_LITERAL.add(STRING_LITERAL318); 11217 11218 // AST REWRITE 11219 // elements: STRING_LITERAL, REGISTER, INSTRUCTION_FORMAT21c_STRING 11220 // token labels: 11221 // rule labels: retval 11222 // token list labels: 11223 // rule list labels: 11224 // wildcard labels: 11225 retval.tree = root_0; 11226 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 11227 11228 root_0 = (CommonTree)adaptor.nil(); 11229 // 915:5: -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) 11230 { 11231 // smaliParser.g:915:8: ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) 11232 { 11233 CommonTree root_1 = (CommonTree)adaptor.nil(); 11234 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_STRING, (retval.start), "I_STATEMENT_FORMAT21c_STRING"), root_1); 11235 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_STRING.nextNode()); 11236 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 11237 adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); 11238 adaptor.addChild(root_0, root_1); 11239 } 11240 11241 } 11242 11243 11244 retval.tree = root_0; 11245 11246 } 11247 11248 retval.stop = input.LT(-1); 11249 11250 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 11251 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 11252 11253 } 11254 catch (RecognitionException re) { 11255 reportError(re); 11256 recover(input,re); 11257 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 11258 } 11259 finally { 11260 // do for sure before leaving 11261 } 11262 return retval; 11263 } 11264 // $ANTLR end "insn_format21c_string" 11265 11266 11267 public static class insn_format21c_type_return extends ParserRuleReturnScope { 11268 CommonTree tree; 11269 @Override 11270 public CommonTree getTree() { return tree; } 11271 }; 11272 11273 11274 // $ANTLR start "insn_format21c_type" 11275 // smaliParser.g:917:1: insn_format21c_type : INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) ; 11276 public final smaliParser.insn_format21c_type_return insn_format21c_type() throws RecognitionException { 11277 smaliParser.insn_format21c_type_return retval = new smaliParser.insn_format21c_type_return(); 11278 retval.start = input.LT(1); 11279 11280 CommonTree root_0 = null; 11281 11282 Token INSTRUCTION_FORMAT21c_TYPE319=null; 11283 Token REGISTER320=null; 11284 Token COMMA321=null; 11285 ParserRuleReturnScope nonvoid_type_descriptor322 =null; 11286 11287 CommonTree INSTRUCTION_FORMAT21c_TYPE319_tree=null; 11288 CommonTree REGISTER320_tree=null; 11289 CommonTree COMMA321_tree=null; 11290 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 11291 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 11292 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_TYPE"); 11293 RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); 11294 11295 try { 11296 // smaliParser.g:918:3: ( INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) ) 11297 // smaliParser.g:919:5: INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor 11298 { 11299 INSTRUCTION_FORMAT21c_TYPE319=(Token)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type4414); 11300 stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE319); 11301 11302 REGISTER320=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_type4416); 11303 stream_REGISTER.add(REGISTER320); 11304 11305 COMMA321=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_type4418); 11306 stream_COMMA.add(COMMA321); 11307 11308 pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type4420); 11309 nonvoid_type_descriptor322=nonvoid_type_descriptor(); 11310 state._fsp--; 11311 11312 stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor322.getTree()); 11313 // AST REWRITE 11314 // elements: REGISTER, INSTRUCTION_FORMAT21c_TYPE, nonvoid_type_descriptor 11315 // token labels: 11316 // rule labels: retval 11317 // token list labels: 11318 // rule list labels: 11319 // wildcard labels: 11320 retval.tree = root_0; 11321 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 11322 11323 root_0 = (CommonTree)adaptor.nil(); 11324 // 920:5: -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) 11325 { 11326 // smaliParser.g:920:8: ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) 11327 { 11328 CommonTree root_1 = (CommonTree)adaptor.nil(); 11329 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_TYPE, (retval.start), "I_STATEMENT_FORMAT21c"), root_1); 11330 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_TYPE.nextNode()); 11331 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 11332 adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); 11333 adaptor.addChild(root_0, root_1); 11334 } 11335 11336 } 11337 11338 11339 retval.tree = root_0; 11340 11341 } 11342 11343 retval.stop = input.LT(-1); 11344 11345 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 11346 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 11347 11348 } 11349 catch (RecognitionException re) { 11350 reportError(re); 11351 recover(input,re); 11352 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 11353 } 11354 finally { 11355 // do for sure before leaving 11356 } 11357 return retval; 11358 } 11359 // $ANTLR end "insn_format21c_type" 11360 11361 11362 public static class insn_format21ih_return extends ParserRuleReturnScope { 11363 CommonTree tree; 11364 @Override 11365 public CommonTree getTree() { return tree; } 11366 }; 11367 11368 11369 // $ANTLR start "insn_format21ih" 11370 // smaliParser.g:922:1: insn_format21ih : INSTRUCTION_FORMAT21ih REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) ; 11371 public final smaliParser.insn_format21ih_return insn_format21ih() throws RecognitionException { 11372 smaliParser.insn_format21ih_return retval = new smaliParser.insn_format21ih_return(); 11373 retval.start = input.LT(1); 11374 11375 CommonTree root_0 = null; 11376 11377 Token INSTRUCTION_FORMAT21ih323=null; 11378 Token REGISTER324=null; 11379 Token COMMA325=null; 11380 ParserRuleReturnScope fixed_32bit_literal326 =null; 11381 11382 CommonTree INSTRUCTION_FORMAT21ih323_tree=null; 11383 CommonTree REGISTER324_tree=null; 11384 CommonTree COMMA325_tree=null; 11385 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 11386 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 11387 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21ih=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21ih"); 11388 RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal"); 11389 11390 try { 11391 // smaliParser.g:923:3: ( INSTRUCTION_FORMAT21ih REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) ) 11392 // smaliParser.g:924:5: INSTRUCTION_FORMAT21ih REGISTER COMMA fixed_32bit_literal 11393 { 11394 INSTRUCTION_FORMAT21ih323=(Token)match(input,INSTRUCTION_FORMAT21ih,FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih4452); 11395 stream_INSTRUCTION_FORMAT21ih.add(INSTRUCTION_FORMAT21ih323); 11396 11397 REGISTER324=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21ih4454); 11398 stream_REGISTER.add(REGISTER324); 11399 11400 COMMA325=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21ih4456); 11401 stream_COMMA.add(COMMA325); 11402 11403 pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21ih4458); 11404 fixed_32bit_literal326=fixed_32bit_literal(); 11405 state._fsp--; 11406 11407 stream_fixed_32bit_literal.add(fixed_32bit_literal326.getTree()); 11408 // AST REWRITE 11409 // elements: REGISTER, INSTRUCTION_FORMAT21ih, fixed_32bit_literal 11410 // token labels: 11411 // rule labels: retval 11412 // token list labels: 11413 // rule list labels: 11414 // wildcard labels: 11415 retval.tree = root_0; 11416 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 11417 11418 root_0 = (CommonTree)adaptor.nil(); 11419 // 925:5: -> ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) 11420 { 11421 // smaliParser.g:925:8: ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) 11422 { 11423 CommonTree root_1 = (CommonTree)adaptor.nil(); 11424 root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21ih, (retval.start), "I_STATEMENT_FORMAT21ih"), root_1); 11425 adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21ih.nextNode()); 11426 adaptor.addChild(root_1, stream_REGISTER.nextNode()); 11427 adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree()); 11428 adaptor.addChild(root_0, root_1); 11429 } 11430 11431 } 11432 11433 11434 retval.tree = root_0; 11435 11436 } 11437 11438 retval.stop = input.LT(-1); 11439 11440 retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); 11441 adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); 11442 11443 } 11444 catch (RecognitionException re) { 11445 reportError(re); 11446 recover(input,re); 11447 retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); 11448 } 11449 finally { 11450 // do for sure before leaving 11451 } 11452 return retval; 11453 } 11454 // $ANTLR end "insn_format21ih" 11455 11456 11457 public static class insn_format21lh_return extends ParserRuleReturnScope { 11458 CommonTree tree; 11459 @Override 11460 public CommonTree getTree() { return tree; } 11461 }; 11462 11463 11464 // $ANTLR start "insn_format21lh" 11465 // smaliParser.g:927:1: insn_format21lh : INSTRUCTION_FORMAT21lh REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal ) ; 11466 public final smaliParser.insn_format21lh_return insn_format21lh() throws RecognitionException { 11467 smaliParser.insn_format21lh_return retval = new smaliParser.insn_format21lh_return(); 11468 retval.start = input.LT(1); 11469 11470 CommonTree root_0 = null; 11471 11472 Token INSTRUCTION_FORMAT21lh327=null; 11473 Token REGISTER328=null; 11474 Token COMMA329=null; 11475 ParserRuleReturnScope fixed_32bit_literal330 =null; 11476 11477 CommonTree INSTRUCTION_FORMAT21lh327_tree=null; 11478 CommonTree REGISTER328_tree=null; 11479 CommonTree COMMA329_tree=null; 11480 RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); 11481 RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); 11482 RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21lh=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21lh"); 11483 RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal"); 11484 11485 try { 11486 // smaliParser.g:928:3: ( INSTRUCTION_FORMAT21lh REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal ) ) 11487 // smaliParser.g:929:5: INSTRUCTION_FORMAT21lh REGISTER COMMA fixed_32bit_literal 11488 { 11489 INSTRUCTION_FORMAT21lh327=(Token)match(input,INSTRUCTION_FORMAT21lh,FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh4490); 11490 stream_INSTRUCTION_FORMAT21lh.add(INSTRUCTION_FORMAT21lh327); 11491 11492 REGISTER328=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21lh4492); 11493 stream_REGISTER.add(REGISTER328); 11494 11495 COMMA329=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21lh4494); 11496 stream_COMMA.add(COMMA329); 11497 11498 pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21lh4496); 11499 fixed_32bit_literal330=fixed_32bit_literal(); 11500 state._fsp--; 11501 11502 stream_fixed_32bit_literal.add(fixed_32bit_literal330.getTree()); 11503 // AST REWRITE 11504 // elements: INSTRUCTION_FORMAT21lh, fixed_32bit_literal, REGISTER 11505 // token labels: 11506 // rule labels: retval 11507 // token list labels: 11508 // rule list labels: 11509 // wildcard labels: 11510 retval.tree = root_0; 11511 RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null); 11512 11513 root_0 = (CommonTree)adaptor.nil(); 11514 // 930:5: -> ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal ) 11515 { 11516 // smaliParser.g:930:8: ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal )