1// $ANTLR 3.5.2 smaliParser.g 2017-04-20 15:20:45
2
3package org.jf.smali;
4
5import org.jf.dexlib2.Format;
6import org.jf.dexlib2.Opcode;
7import org.jf.dexlib2.Opcodes;
8
9
10import org.antlr.runtime.*;
11import java.util.Stack;
12import java.util.List;
13import java.util.ArrayList;
14
15import org.antlr.runtime.tree.*;
16
17
18@SuppressWarnings("all")
19public 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 )
11517				{
11518				CommonTree root_1 = (CommonTree)adaptor.nil();
11519				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21lh, (retval.start), "I_STATEMENT_FORMAT21lh"), root_1);
11520				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21lh.nextNode());
11521				adaptor.addChild(root_1, stream_REGISTER.nextNode());
11522				adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
11523				adaptor.addChild(root_0, root_1);
11524				}
11525
11526			}
11527
11528
11529			retval.tree = root_0;
11530
11531			}
11532
11533			retval.stop = input.LT(-1);
11534
11535			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
11536			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
11537
11538		}
11539		catch (RecognitionException re) {
11540			reportError(re);
11541			recover(input,re);
11542			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
11543		}
11544		finally {
11545			// do for sure before leaving
11546		}
11547		return retval;
11548	}
11549	// $ANTLR end "insn_format21lh"
11550
11551
11552	public static class insn_format21s_return extends ParserRuleReturnScope {
11553		CommonTree tree;
11554		@Override
11555		public CommonTree getTree() { return tree; }
11556	};
11557
11558
11559	// $ANTLR start "insn_format21s"
11560	// smaliParser.g:932:1: insn_format21s : INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) ;
11561	public final smaliParser.insn_format21s_return insn_format21s() throws RecognitionException {
11562		smaliParser.insn_format21s_return retval = new smaliParser.insn_format21s_return();
11563		retval.start = input.LT(1);
11564
11565		CommonTree root_0 = null;
11566
11567		Token INSTRUCTION_FORMAT21s331=null;
11568		Token REGISTER332=null;
11569		Token COMMA333=null;
11570		ParserRuleReturnScope integral_literal334 =null;
11571
11572		CommonTree INSTRUCTION_FORMAT21s331_tree=null;
11573		CommonTree REGISTER332_tree=null;
11574		CommonTree COMMA333_tree=null;
11575		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
11576		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
11577		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21s=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21s");
11578		RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
11579
11580		try {
11581			// smaliParser.g:933:3: ( INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) )
11582			// smaliParser.g:934:5: INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal
11583			{
11584			INSTRUCTION_FORMAT21s331=(Token)match(input,INSTRUCTION_FORMAT21s,FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s4528);
11585			stream_INSTRUCTION_FORMAT21s.add(INSTRUCTION_FORMAT21s331);
11586
11587			REGISTER332=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21s4530);
11588			stream_REGISTER.add(REGISTER332);
11589
11590			COMMA333=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21s4532);
11591			stream_COMMA.add(COMMA333);
11592
11593			pushFollow(FOLLOW_integral_literal_in_insn_format21s4534);
11594			integral_literal334=integral_literal();
11595			state._fsp--;
11596
11597			stream_integral_literal.add(integral_literal334.getTree());
11598			// AST REWRITE
11599			// elements: integral_literal, REGISTER, INSTRUCTION_FORMAT21s
11600			// token labels:
11601			// rule labels: retval
11602			// token list labels:
11603			// rule list labels:
11604			// wildcard labels:
11605			retval.tree = root_0;
11606			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
11607
11608			root_0 = (CommonTree)adaptor.nil();
11609			// 935:5: -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal )
11610			{
11611				// smaliParser.g:935:8: ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal )
11612				{
11613				CommonTree root_1 = (CommonTree)adaptor.nil();
11614				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21s, (retval.start), "I_STATEMENT_FORMAT21s"), root_1);
11615				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21s.nextNode());
11616				adaptor.addChild(root_1, stream_REGISTER.nextNode());
11617				adaptor.addChild(root_1, stream_integral_literal.nextTree());
11618				adaptor.addChild(root_0, root_1);
11619				}
11620
11621			}
11622
11623
11624			retval.tree = root_0;
11625
11626			}
11627
11628			retval.stop = input.LT(-1);
11629
11630			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
11631			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
11632
11633		}
11634		catch (RecognitionException re) {
11635			reportError(re);
11636			recover(input,re);
11637			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
11638		}
11639		finally {
11640			// do for sure before leaving
11641		}
11642		return retval;
11643	}
11644	// $ANTLR end "insn_format21s"
11645
11646
11647	public static class insn_format21t_return extends ParserRuleReturnScope {
11648		CommonTree tree;
11649		@Override
11650		public CommonTree getTree() { return tree; }
11651	};
11652
11653
11654	// $ANTLR start "insn_format21t"
11655	// smaliParser.g:937:1: insn_format21t : INSTRUCTION_FORMAT21t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref ) ;
11656	public final smaliParser.insn_format21t_return insn_format21t() throws RecognitionException {
11657		smaliParser.insn_format21t_return retval = new smaliParser.insn_format21t_return();
11658		retval.start = input.LT(1);
11659
11660		CommonTree root_0 = null;
11661
11662		Token INSTRUCTION_FORMAT21t335=null;
11663		Token REGISTER336=null;
11664		Token COMMA337=null;
11665		ParserRuleReturnScope label_ref338 =null;
11666
11667		CommonTree INSTRUCTION_FORMAT21t335_tree=null;
11668		CommonTree REGISTER336_tree=null;
11669		CommonTree COMMA337_tree=null;
11670		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
11671		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
11672		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21t");
11673		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
11674
11675		try {
11676			// smaliParser.g:938:3: ( INSTRUCTION_FORMAT21t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref ) )
11677			// smaliParser.g:939:5: INSTRUCTION_FORMAT21t REGISTER COMMA label_ref
11678			{
11679			INSTRUCTION_FORMAT21t335=(Token)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t4566);
11680			stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t335);
11681
11682			REGISTER336=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21t4568);
11683			stream_REGISTER.add(REGISTER336);
11684
11685			COMMA337=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21t4570);
11686			stream_COMMA.add(COMMA337);
11687
11688			pushFollow(FOLLOW_label_ref_in_insn_format21t4572);
11689			label_ref338=label_ref();
11690			state._fsp--;
11691
11692			stream_label_ref.add(label_ref338.getTree());
11693			// AST REWRITE
11694			// elements: INSTRUCTION_FORMAT21t, label_ref, REGISTER
11695			// token labels:
11696			// rule labels: retval
11697			// token list labels:
11698			// rule list labels:
11699			// wildcard labels:
11700			retval.tree = root_0;
11701			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
11702
11703			root_0 = (CommonTree)adaptor.nil();
11704			// 940:5: -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref )
11705			{
11706				// smaliParser.g:940:8: ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref )
11707				{
11708				CommonTree root_1 = (CommonTree)adaptor.nil();
11709				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21t, (retval.start), "I_STATEMENT_FORMAT21t"), root_1);
11710				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21t.nextNode());
11711				adaptor.addChild(root_1, stream_REGISTER.nextNode());
11712				adaptor.addChild(root_1, stream_label_ref.nextTree());
11713				adaptor.addChild(root_0, root_1);
11714				}
11715
11716			}
11717
11718
11719			retval.tree = root_0;
11720
11721			}
11722
11723			retval.stop = input.LT(-1);
11724
11725			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
11726			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
11727
11728		}
11729		catch (RecognitionException re) {
11730			reportError(re);
11731			recover(input,re);
11732			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
11733		}
11734		finally {
11735			// do for sure before leaving
11736		}
11737		return retval;
11738	}
11739	// $ANTLR end "insn_format21t"
11740
11741
11742	public static class insn_format22b_return extends ParserRuleReturnScope {
11743		CommonTree tree;
11744		@Override
11745		public CommonTree getTree() { return tree; }
11746	};
11747
11748
11749	// $ANTLR start "insn_format22b"
11750	// smaliParser.g:942:1: insn_format22b : INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) ;
11751	public final smaliParser.insn_format22b_return insn_format22b() throws RecognitionException {
11752		smaliParser.insn_format22b_return retval = new smaliParser.insn_format22b_return();
11753		retval.start = input.LT(1);
11754
11755		CommonTree root_0 = null;
11756
11757		Token INSTRUCTION_FORMAT22b339=null;
11758		Token REGISTER340=null;
11759		Token COMMA341=null;
11760		Token REGISTER342=null;
11761		Token COMMA343=null;
11762		ParserRuleReturnScope integral_literal344 =null;
11763
11764		CommonTree INSTRUCTION_FORMAT22b339_tree=null;
11765		CommonTree REGISTER340_tree=null;
11766		CommonTree COMMA341_tree=null;
11767		CommonTree REGISTER342_tree=null;
11768		CommonTree COMMA343_tree=null;
11769		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
11770		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
11771		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22b=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22b");
11772		RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
11773
11774		try {
11775			// smaliParser.g:943:3: ( INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) )
11776			// smaliParser.g:944:5: INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal
11777			{
11778			INSTRUCTION_FORMAT22b339=(Token)match(input,INSTRUCTION_FORMAT22b,FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b4604);
11779			stream_INSTRUCTION_FORMAT22b.add(INSTRUCTION_FORMAT22b339);
11780
11781			REGISTER340=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b4606);
11782			stream_REGISTER.add(REGISTER340);
11783
11784			COMMA341=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22b4608);
11785			stream_COMMA.add(COMMA341);
11786
11787			REGISTER342=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b4610);
11788			stream_REGISTER.add(REGISTER342);
11789
11790			COMMA343=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22b4612);
11791			stream_COMMA.add(COMMA343);
11792
11793			pushFollow(FOLLOW_integral_literal_in_insn_format22b4614);
11794			integral_literal344=integral_literal();
11795			state._fsp--;
11796
11797			stream_integral_literal.add(integral_literal344.getTree());
11798			// AST REWRITE
11799			// elements: REGISTER, REGISTER, integral_literal, INSTRUCTION_FORMAT22b
11800			// token labels:
11801			// rule labels: retval
11802			// token list labels:
11803			// rule list labels:
11804			// wildcard labels:
11805			retval.tree = root_0;
11806			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
11807
11808			root_0 = (CommonTree)adaptor.nil();
11809			// 945:5: -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal )
11810			{
11811				// smaliParser.g:945:8: ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal )
11812				{
11813				CommonTree root_1 = (CommonTree)adaptor.nil();
11814				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22b, (retval.start), "I_STATEMENT_FORMAT22b"), root_1);
11815				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22b.nextNode());
11816				adaptor.addChild(root_1, stream_REGISTER.nextNode());
11817				adaptor.addChild(root_1, stream_REGISTER.nextNode());
11818				adaptor.addChild(root_1, stream_integral_literal.nextTree());
11819				adaptor.addChild(root_0, root_1);
11820				}
11821
11822			}
11823
11824
11825			retval.tree = root_0;
11826
11827			}
11828
11829			retval.stop = input.LT(-1);
11830
11831			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
11832			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
11833
11834		}
11835		catch (RecognitionException re) {
11836			reportError(re);
11837			recover(input,re);
11838			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
11839		}
11840		finally {
11841			// do for sure before leaving
11842		}
11843		return retval;
11844	}
11845	// $ANTLR end "insn_format22b"
11846
11847
11848	public static class insn_format22c_field_return extends ParserRuleReturnScope {
11849		CommonTree tree;
11850		@Override
11851		public CommonTree getTree() { return tree; }
11852	};
11853
11854
11855	// $ANTLR start "insn_format22c_field"
11856	// smaliParser.g:947:1: insn_format22c_field : INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference ) ;
11857	public final smaliParser.insn_format22c_field_return insn_format22c_field() throws RecognitionException {
11858		smaliParser.insn_format22c_field_return retval = new smaliParser.insn_format22c_field_return();
11859		retval.start = input.LT(1);
11860
11861		CommonTree root_0 = null;
11862
11863		Token INSTRUCTION_FORMAT22c_FIELD345=null;
11864		Token REGISTER346=null;
11865		Token COMMA347=null;
11866		Token REGISTER348=null;
11867		Token COMMA349=null;
11868		ParserRuleReturnScope field_reference350 =null;
11869
11870		CommonTree INSTRUCTION_FORMAT22c_FIELD345_tree=null;
11871		CommonTree REGISTER346_tree=null;
11872		CommonTree COMMA347_tree=null;
11873		CommonTree REGISTER348_tree=null;
11874		CommonTree COMMA349_tree=null;
11875		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
11876		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD");
11877		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
11878		RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
11879
11880		try {
11881			// smaliParser.g:948:3: ( INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference ) )
11882			// smaliParser.g:949:5: INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA field_reference
11883			{
11884			INSTRUCTION_FORMAT22c_FIELD345=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_insn_format22c_field4648);
11885			stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD345);
11886
11887			REGISTER346=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field4650);
11888			stream_REGISTER.add(REGISTER346);
11889
11890			COMMA347=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field4652);
11891			stream_COMMA.add(COMMA347);
11892
11893			REGISTER348=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field4654);
11894			stream_REGISTER.add(REGISTER348);
11895
11896			COMMA349=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field4656);
11897			stream_COMMA.add(COMMA349);
11898
11899			pushFollow(FOLLOW_field_reference_in_insn_format22c_field4658);
11900			field_reference350=field_reference();
11901			state._fsp--;
11902
11903			stream_field_reference.add(field_reference350.getTree());
11904			// AST REWRITE
11905			// elements: INSTRUCTION_FORMAT22c_FIELD, REGISTER, field_reference, REGISTER
11906			// token labels:
11907			// rule labels: retval
11908			// token list labels:
11909			// rule list labels:
11910			// wildcard labels:
11911			retval.tree = root_0;
11912			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
11913
11914			root_0 = (CommonTree)adaptor.nil();
11915			// 950:5: -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference )
11916			{
11917				// smaliParser.g:950:8: ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference )
11918				{
11919				CommonTree root_1 = (CommonTree)adaptor.nil();
11920				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_FIELD, (retval.start), "I_STATEMENT_FORMAT22c_FIELD"), root_1);
11921				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_FIELD.nextNode());
11922				adaptor.addChild(root_1, stream_REGISTER.nextNode());
11923				adaptor.addChild(root_1, stream_REGISTER.nextNode());
11924				adaptor.addChild(root_1, stream_field_reference.nextTree());
11925				adaptor.addChild(root_0, root_1);
11926				}
11927
11928			}
11929
11930
11931			retval.tree = root_0;
11932
11933			}
11934
11935			retval.stop = input.LT(-1);
11936
11937			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
11938			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
11939
11940		}
11941		catch (RecognitionException re) {
11942			reportError(re);
11943			recover(input,re);
11944			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
11945		}
11946		finally {
11947			// do for sure before leaving
11948		}
11949		return retval;
11950	}
11951	// $ANTLR end "insn_format22c_field"
11952
11953
11954	public static class insn_format22c_field_odex_return extends ParserRuleReturnScope {
11955		CommonTree tree;
11956		@Override
11957		public CommonTree getTree() { return tree; }
11958	};
11959
11960
11961	// $ANTLR start "insn_format22c_field_odex"
11962	// smaliParser.g:952:1: insn_format22c_field_odex : INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference ) ;
11963	public final smaliParser.insn_format22c_field_odex_return insn_format22c_field_odex() throws RecognitionException {
11964		smaliParser.insn_format22c_field_odex_return retval = new smaliParser.insn_format22c_field_odex_return();
11965		retval.start = input.LT(1);
11966
11967		CommonTree root_0 = null;
11968
11969		Token INSTRUCTION_FORMAT22c_FIELD_ODEX351=null;
11970		Token REGISTER352=null;
11971		Token COMMA353=null;
11972		Token REGISTER354=null;
11973		Token COMMA355=null;
11974		ParserRuleReturnScope field_reference356 =null;
11975
11976		CommonTree INSTRUCTION_FORMAT22c_FIELD_ODEX351_tree=null;
11977		CommonTree REGISTER352_tree=null;
11978		CommonTree COMMA353_tree=null;
11979		CommonTree REGISTER354_tree=null;
11980		CommonTree COMMA355_tree=null;
11981		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
11982		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
11983		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD_ODEX");
11984		RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
11985
11986		try {
11987			// smaliParser.g:953:3: ( INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference ) )
11988			// smaliParser.g:954:5: INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER COMMA REGISTER COMMA field_reference
11989			{
11990			INSTRUCTION_FORMAT22c_FIELD_ODEX351=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_insn_format22c_field_odex4692);
11991			stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.add(INSTRUCTION_FORMAT22c_FIELD_ODEX351);
11992
11993			REGISTER352=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field_odex4694);
11994			stream_REGISTER.add(REGISTER352);
11995
11996			COMMA353=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field_odex4696);
11997			stream_COMMA.add(COMMA353);
11998
11999			REGISTER354=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field_odex4698);
12000			stream_REGISTER.add(REGISTER354);
12001
12002			COMMA355=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field_odex4700);
12003			stream_COMMA.add(COMMA355);
12004
12005			pushFollow(FOLLOW_field_reference_in_insn_format22c_field_odex4702);
12006			field_reference356=field_reference();
12007			state._fsp--;
12008
12009			stream_field_reference.add(field_reference356.getTree());
12010
12011			      if (!allowOdex || opcodes.getOpcodeByName((INSTRUCTION_FORMAT22c_FIELD_ODEX351!=null?INSTRUCTION_FORMAT22c_FIELD_ODEX351.getText():null)) == null || apiLevel >= 14) {
12012			        throwOdexedInstructionException(input, (INSTRUCTION_FORMAT22c_FIELD_ODEX351!=null?INSTRUCTION_FORMAT22c_FIELD_ODEX351.getText():null));
12013			      }
12014
12015			// AST REWRITE
12016			// elements: INSTRUCTION_FORMAT22c_FIELD_ODEX, field_reference, REGISTER, REGISTER
12017			// token labels:
12018			// rule labels: retval
12019			// token list labels:
12020			// rule list labels:
12021			// wildcard labels:
12022			retval.tree = root_0;
12023			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12024
12025			root_0 = (CommonTree)adaptor.nil();
12026			// 960:5: -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference )
12027			{
12028				// smaliParser.g:960:8: ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference )
12029				{
12030				CommonTree root_1 = (CommonTree)adaptor.nil();
12031				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_FIELD, (retval.start), "I_STATEMENT_FORMAT22c_FIELD"), root_1);
12032				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.nextNode());
12033				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12034				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12035				adaptor.addChild(root_1, stream_field_reference.nextTree());
12036				adaptor.addChild(root_0, root_1);
12037				}
12038
12039			}
12040
12041
12042			retval.tree = root_0;
12043
12044			}
12045
12046			retval.stop = input.LT(-1);
12047
12048			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12049			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12050
12051		}
12052		catch (RecognitionException re) {
12053			reportError(re);
12054			recover(input,re);
12055			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12056		}
12057		finally {
12058			// do for sure before leaving
12059		}
12060		return retval;
12061	}
12062	// $ANTLR end "insn_format22c_field_odex"
12063
12064
12065	public static class insn_format22c_type_return extends ParserRuleReturnScope {
12066		CommonTree tree;
12067		@Override
12068		public CommonTree getTree() { return tree; }
12069	};
12070
12071
12072	// $ANTLR start "insn_format22c_type"
12073	// smaliParser.g:962:1: insn_format22c_type : INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor ) ;
12074	public final smaliParser.insn_format22c_type_return insn_format22c_type() throws RecognitionException {
12075		smaliParser.insn_format22c_type_return retval = new smaliParser.insn_format22c_type_return();
12076		retval.start = input.LT(1);
12077
12078		CommonTree root_0 = null;
12079
12080		Token INSTRUCTION_FORMAT22c_TYPE357=null;
12081		Token REGISTER358=null;
12082		Token COMMA359=null;
12083		Token REGISTER360=null;
12084		Token COMMA361=null;
12085		ParserRuleReturnScope nonvoid_type_descriptor362 =null;
12086
12087		CommonTree INSTRUCTION_FORMAT22c_TYPE357_tree=null;
12088		CommonTree REGISTER358_tree=null;
12089		CommonTree COMMA359_tree=null;
12090		CommonTree REGISTER360_tree=null;
12091		CommonTree COMMA361_tree=null;
12092		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
12093		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
12094		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_TYPE");
12095		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
12096
12097		try {
12098			// smaliParser.g:963:3: ( INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor ) )
12099			// smaliParser.g:964:5: INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor
12100			{
12101			INSTRUCTION_FORMAT22c_TYPE357=(Token)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type4742);
12102			stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE357);
12103
12104			REGISTER358=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type4744);
12105			stream_REGISTER.add(REGISTER358);
12106
12107			COMMA359=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_type4746);
12108			stream_COMMA.add(COMMA359);
12109
12110			REGISTER360=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type4748);
12111			stream_REGISTER.add(REGISTER360);
12112
12113			COMMA361=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_type4750);
12114			stream_COMMA.add(COMMA361);
12115
12116			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type4752);
12117			nonvoid_type_descriptor362=nonvoid_type_descriptor();
12118			state._fsp--;
12119
12120			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor362.getTree());
12121			// AST REWRITE
12122			// elements: REGISTER, REGISTER, nonvoid_type_descriptor, INSTRUCTION_FORMAT22c_TYPE
12123			// token labels:
12124			// rule labels: retval
12125			// token list labels:
12126			// rule list labels:
12127			// wildcard labels:
12128			retval.tree = root_0;
12129			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12130
12131			root_0 = (CommonTree)adaptor.nil();
12132			// 965:5: -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor )
12133			{
12134				// smaliParser.g:965:8: ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor )
12135				{
12136				CommonTree root_1 = (CommonTree)adaptor.nil();
12137				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_TYPE, (retval.start), "I_STATEMENT_FORMAT22c_TYPE"), root_1);
12138				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_TYPE.nextNode());
12139				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12140				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12141				adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
12142				adaptor.addChild(root_0, root_1);
12143				}
12144
12145			}
12146
12147
12148			retval.tree = root_0;
12149
12150			}
12151
12152			retval.stop = input.LT(-1);
12153
12154			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12155			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12156
12157		}
12158		catch (RecognitionException re) {
12159			reportError(re);
12160			recover(input,re);
12161			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12162		}
12163		finally {
12164			// do for sure before leaving
12165		}
12166		return retval;
12167	}
12168	// $ANTLR end "insn_format22c_type"
12169
12170
12171	public static class insn_format22cs_field_return extends ParserRuleReturnScope {
12172		CommonTree tree;
12173		@Override
12174		public CommonTree getTree() { return tree; }
12175	};
12176
12177
12178	// $ANTLR start "insn_format22cs_field"
12179	// smaliParser.g:967:1: insn_format22cs_field : INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET ;
12180	public final smaliParser.insn_format22cs_field_return insn_format22cs_field() throws RecognitionException {
12181		smaliParser.insn_format22cs_field_return retval = new smaliParser.insn_format22cs_field_return();
12182		retval.start = input.LT(1);
12183
12184		CommonTree root_0 = null;
12185
12186		Token INSTRUCTION_FORMAT22cs_FIELD363=null;
12187		Token REGISTER364=null;
12188		Token COMMA365=null;
12189		Token REGISTER366=null;
12190		Token COMMA367=null;
12191		Token FIELD_OFFSET368=null;
12192
12193		CommonTree INSTRUCTION_FORMAT22cs_FIELD363_tree=null;
12194		CommonTree REGISTER364_tree=null;
12195		CommonTree COMMA365_tree=null;
12196		CommonTree REGISTER366_tree=null;
12197		CommonTree COMMA367_tree=null;
12198		CommonTree FIELD_OFFSET368_tree=null;
12199
12200		try {
12201			// smaliParser.g:968:3: ( INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET )
12202			// smaliParser.g:969:5: INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET
12203			{
12204			root_0 = (CommonTree)adaptor.nil();
12205
12206
12207			INSTRUCTION_FORMAT22cs_FIELD363=(Token)match(input,INSTRUCTION_FORMAT22cs_FIELD,FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_insn_format22cs_field4786);
12208			INSTRUCTION_FORMAT22cs_FIELD363_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT22cs_FIELD363);
12209			adaptor.addChild(root_0, INSTRUCTION_FORMAT22cs_FIELD363_tree);
12210
12211			REGISTER364=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22cs_field4788);
12212			REGISTER364_tree = (CommonTree)adaptor.create(REGISTER364);
12213			adaptor.addChild(root_0, REGISTER364_tree);
12214
12215			COMMA365=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22cs_field4790);
12216			COMMA365_tree = (CommonTree)adaptor.create(COMMA365);
12217			adaptor.addChild(root_0, COMMA365_tree);
12218
12219			REGISTER366=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22cs_field4792);
12220			REGISTER366_tree = (CommonTree)adaptor.create(REGISTER366);
12221			adaptor.addChild(root_0, REGISTER366_tree);
12222
12223			COMMA367=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22cs_field4794);
12224			COMMA367_tree = (CommonTree)adaptor.create(COMMA367);
12225			adaptor.addChild(root_0, COMMA367_tree);
12226
12227			FIELD_OFFSET368=(Token)match(input,FIELD_OFFSET,FOLLOW_FIELD_OFFSET_in_insn_format22cs_field4796);
12228			FIELD_OFFSET368_tree = (CommonTree)adaptor.create(FIELD_OFFSET368);
12229			adaptor.addChild(root_0, FIELD_OFFSET368_tree);
12230
12231
12232			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT22cs_FIELD363!=null?INSTRUCTION_FORMAT22cs_FIELD363.getText():null));
12233
12234			}
12235
12236			retval.stop = input.LT(-1);
12237
12238			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12239			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12240
12241		}
12242		catch (RecognitionException re) {
12243			reportError(re);
12244			recover(input,re);
12245			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12246		}
12247		finally {
12248			// do for sure before leaving
12249		}
12250		return retval;
12251	}
12252	// $ANTLR end "insn_format22cs_field"
12253
12254
12255	public static class insn_format22s_return extends ParserRuleReturnScope {
12256		CommonTree tree;
12257		@Override
12258		public CommonTree getTree() { return tree; }
12259	};
12260
12261
12262	// $ANTLR start "insn_format22s"
12263	// smaliParser.g:974:1: insn_format22s : instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) ;
12264	public final smaliParser.insn_format22s_return insn_format22s() throws RecognitionException {
12265		smaliParser.insn_format22s_return retval = new smaliParser.insn_format22s_return();
12266		retval.start = input.LT(1);
12267
12268		CommonTree root_0 = null;
12269
12270		Token REGISTER370=null;
12271		Token COMMA371=null;
12272		Token REGISTER372=null;
12273		Token COMMA373=null;
12274		ParserRuleReturnScope instruction_format22s369 =null;
12275		ParserRuleReturnScope integral_literal374 =null;
12276
12277		CommonTree REGISTER370_tree=null;
12278		CommonTree COMMA371_tree=null;
12279		CommonTree REGISTER372_tree=null;
12280		CommonTree COMMA373_tree=null;
12281		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
12282		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
12283		RewriteRuleSubtreeStream stream_instruction_format22s=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format22s");
12284		RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
12285
12286		try {
12287			// smaliParser.g:975:3: ( instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) )
12288			// smaliParser.g:976:5: instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal
12289			{
12290			pushFollow(FOLLOW_instruction_format22s_in_insn_format22s4817);
12291			instruction_format22s369=instruction_format22s();
12292			state._fsp--;
12293
12294			stream_instruction_format22s.add(instruction_format22s369.getTree());
12295			REGISTER370=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s4819);
12296			stream_REGISTER.add(REGISTER370);
12297
12298			COMMA371=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22s4821);
12299			stream_COMMA.add(COMMA371);
12300
12301			REGISTER372=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s4823);
12302			stream_REGISTER.add(REGISTER372);
12303
12304			COMMA373=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22s4825);
12305			stream_COMMA.add(COMMA373);
12306
12307			pushFollow(FOLLOW_integral_literal_in_insn_format22s4827);
12308			integral_literal374=integral_literal();
12309			state._fsp--;
12310
12311			stream_integral_literal.add(integral_literal374.getTree());
12312			// AST REWRITE
12313			// elements: REGISTER, REGISTER, instruction_format22s, integral_literal
12314			// token labels:
12315			// rule labels: retval
12316			// token list labels:
12317			// rule list labels:
12318			// wildcard labels:
12319			retval.tree = root_0;
12320			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12321
12322			root_0 = (CommonTree)adaptor.nil();
12323			// 977:5: -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal )
12324			{
12325				// smaliParser.g:977:8: ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal )
12326				{
12327				CommonTree root_1 = (CommonTree)adaptor.nil();
12328				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22s, (retval.start), "I_STATEMENT_FORMAT22s"), root_1);
12329				adaptor.addChild(root_1, stream_instruction_format22s.nextTree());
12330				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12331				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12332				adaptor.addChild(root_1, stream_integral_literal.nextTree());
12333				adaptor.addChild(root_0, root_1);
12334				}
12335
12336			}
12337
12338
12339			retval.tree = root_0;
12340
12341			}
12342
12343			retval.stop = input.LT(-1);
12344
12345			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12346			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12347
12348		}
12349		catch (RecognitionException re) {
12350			reportError(re);
12351			recover(input,re);
12352			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12353		}
12354		finally {
12355			// do for sure before leaving
12356		}
12357		return retval;
12358	}
12359	// $ANTLR end "insn_format22s"
12360
12361
12362	public static class insn_format22t_return extends ParserRuleReturnScope {
12363		CommonTree tree;
12364		@Override
12365		public CommonTree getTree() { return tree; }
12366	};
12367
12368
12369	// $ANTLR start "insn_format22t"
12370	// smaliParser.g:979:1: insn_format22t : INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref ) ;
12371	public final smaliParser.insn_format22t_return insn_format22t() throws RecognitionException {
12372		smaliParser.insn_format22t_return retval = new smaliParser.insn_format22t_return();
12373		retval.start = input.LT(1);
12374
12375		CommonTree root_0 = null;
12376
12377		Token INSTRUCTION_FORMAT22t375=null;
12378		Token REGISTER376=null;
12379		Token COMMA377=null;
12380		Token REGISTER378=null;
12381		Token COMMA379=null;
12382		ParserRuleReturnScope label_ref380 =null;
12383
12384		CommonTree INSTRUCTION_FORMAT22t375_tree=null;
12385		CommonTree REGISTER376_tree=null;
12386		CommonTree COMMA377_tree=null;
12387		CommonTree REGISTER378_tree=null;
12388		CommonTree COMMA379_tree=null;
12389		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
12390		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
12391		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22t");
12392		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
12393
12394		try {
12395			// smaliParser.g:980:3: ( INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref ) )
12396			// smaliParser.g:981:5: INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref
12397			{
12398			INSTRUCTION_FORMAT22t375=(Token)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t4861);
12399			stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t375);
12400
12401			REGISTER376=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t4863);
12402			stream_REGISTER.add(REGISTER376);
12403
12404			COMMA377=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22t4865);
12405			stream_COMMA.add(COMMA377);
12406
12407			REGISTER378=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t4867);
12408			stream_REGISTER.add(REGISTER378);
12409
12410			COMMA379=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22t4869);
12411			stream_COMMA.add(COMMA379);
12412
12413			pushFollow(FOLLOW_label_ref_in_insn_format22t4871);
12414			label_ref380=label_ref();
12415			state._fsp--;
12416
12417			stream_label_ref.add(label_ref380.getTree());
12418			// AST REWRITE
12419			// elements: REGISTER, INSTRUCTION_FORMAT22t, REGISTER, label_ref
12420			// token labels:
12421			// rule labels: retval
12422			// token list labels:
12423			// rule list labels:
12424			// wildcard labels:
12425			retval.tree = root_0;
12426			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12427
12428			root_0 = (CommonTree)adaptor.nil();
12429			// 982:5: -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref )
12430			{
12431				// smaliParser.g:982:8: ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref )
12432				{
12433				CommonTree root_1 = (CommonTree)adaptor.nil();
12434				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22t, (retval.start), "I_STATEMENT_FFORMAT22t"), root_1);
12435				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22t.nextNode());
12436				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12437				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12438				adaptor.addChild(root_1, stream_label_ref.nextTree());
12439				adaptor.addChild(root_0, root_1);
12440				}
12441
12442			}
12443
12444
12445			retval.tree = root_0;
12446
12447			}
12448
12449			retval.stop = input.LT(-1);
12450
12451			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12452			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12453
12454		}
12455		catch (RecognitionException re) {
12456			reportError(re);
12457			recover(input,re);
12458			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12459		}
12460		finally {
12461			// do for sure before leaving
12462		}
12463		return retval;
12464	}
12465	// $ANTLR end "insn_format22t"
12466
12467
12468	public static class insn_format22x_return extends ParserRuleReturnScope {
12469		CommonTree tree;
12470		@Override
12471		public CommonTree getTree() { return tree; }
12472	};
12473
12474
12475	// $ANTLR start "insn_format22x"
12476	// smaliParser.g:984:1: insn_format22x : INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) ;
12477	public final smaliParser.insn_format22x_return insn_format22x() throws RecognitionException {
12478		smaliParser.insn_format22x_return retval = new smaliParser.insn_format22x_return();
12479		retval.start = input.LT(1);
12480
12481		CommonTree root_0 = null;
12482
12483		Token INSTRUCTION_FORMAT22x381=null;
12484		Token REGISTER382=null;
12485		Token COMMA383=null;
12486		Token REGISTER384=null;
12487
12488		CommonTree INSTRUCTION_FORMAT22x381_tree=null;
12489		CommonTree REGISTER382_tree=null;
12490		CommonTree COMMA383_tree=null;
12491		CommonTree REGISTER384_tree=null;
12492		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
12493		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
12494		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22x");
12495
12496		try {
12497			// smaliParser.g:985:3: ( INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) )
12498			// smaliParser.g:986:5: INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER
12499			{
12500			INSTRUCTION_FORMAT22x381=(Token)match(input,INSTRUCTION_FORMAT22x,FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x4905);
12501			stream_INSTRUCTION_FORMAT22x.add(INSTRUCTION_FORMAT22x381);
12502
12503			REGISTER382=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x4907);
12504			stream_REGISTER.add(REGISTER382);
12505
12506			COMMA383=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22x4909);
12507			stream_COMMA.add(COMMA383);
12508
12509			REGISTER384=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x4911);
12510			stream_REGISTER.add(REGISTER384);
12511
12512			// AST REWRITE
12513			// elements: REGISTER, REGISTER, INSTRUCTION_FORMAT22x
12514			// token labels:
12515			// rule labels: retval
12516			// token list labels:
12517			// rule list labels:
12518			// wildcard labels:
12519			retval.tree = root_0;
12520			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12521
12522			root_0 = (CommonTree)adaptor.nil();
12523			// 987:5: -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER )
12524			{
12525				// smaliParser.g:987:8: ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER )
12526				{
12527				CommonTree root_1 = (CommonTree)adaptor.nil();
12528				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22x, (retval.start), "I_STATEMENT_FORMAT22x"), root_1);
12529				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22x.nextNode());
12530				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12531				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12532				adaptor.addChild(root_0, root_1);
12533				}
12534
12535			}
12536
12537
12538			retval.tree = root_0;
12539
12540			}
12541
12542			retval.stop = input.LT(-1);
12543
12544			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12545			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12546
12547		}
12548		catch (RecognitionException re) {
12549			reportError(re);
12550			recover(input,re);
12551			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12552		}
12553		finally {
12554			// do for sure before leaving
12555		}
12556		return retval;
12557	}
12558	// $ANTLR end "insn_format22x"
12559
12560
12561	public static class insn_format23x_return extends ParserRuleReturnScope {
12562		CommonTree tree;
12563		@Override
12564		public CommonTree getTree() { return tree; }
12565	};
12566
12567
12568	// $ANTLR start "insn_format23x"
12569	// smaliParser.g:989:1: insn_format23x : INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) ;
12570	public final smaliParser.insn_format23x_return insn_format23x() throws RecognitionException {
12571		smaliParser.insn_format23x_return retval = new smaliParser.insn_format23x_return();
12572		retval.start = input.LT(1);
12573
12574		CommonTree root_0 = null;
12575
12576		Token INSTRUCTION_FORMAT23x385=null;
12577		Token REGISTER386=null;
12578		Token COMMA387=null;
12579		Token REGISTER388=null;
12580		Token COMMA389=null;
12581		Token REGISTER390=null;
12582
12583		CommonTree INSTRUCTION_FORMAT23x385_tree=null;
12584		CommonTree REGISTER386_tree=null;
12585		CommonTree COMMA387_tree=null;
12586		CommonTree REGISTER388_tree=null;
12587		CommonTree COMMA389_tree=null;
12588		CommonTree REGISTER390_tree=null;
12589		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
12590		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
12591		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT23x");
12592
12593		try {
12594			// smaliParser.g:990:3: ( INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) )
12595			// smaliParser.g:991:5: INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER
12596			{
12597			INSTRUCTION_FORMAT23x385=(Token)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x4943);
12598			stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x385);
12599
12600			REGISTER386=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x4945);
12601			stream_REGISTER.add(REGISTER386);
12602
12603			COMMA387=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format23x4947);
12604			stream_COMMA.add(COMMA387);
12605
12606			REGISTER388=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x4949);
12607			stream_REGISTER.add(REGISTER388);
12608
12609			COMMA389=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format23x4951);
12610			stream_COMMA.add(COMMA389);
12611
12612			REGISTER390=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x4953);
12613			stream_REGISTER.add(REGISTER390);
12614
12615			// AST REWRITE
12616			// elements: REGISTER, REGISTER, INSTRUCTION_FORMAT23x, REGISTER
12617			// token labels:
12618			// rule labels: retval
12619			// token list labels:
12620			// rule list labels:
12621			// wildcard labels:
12622			retval.tree = root_0;
12623			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12624
12625			root_0 = (CommonTree)adaptor.nil();
12626			// 992:5: -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER )
12627			{
12628				// smaliParser.g:992:8: ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER )
12629				{
12630				CommonTree root_1 = (CommonTree)adaptor.nil();
12631				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT23x, (retval.start), "I_STATEMENT_FORMAT23x"), root_1);
12632				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT23x.nextNode());
12633				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12634				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12635				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12636				adaptor.addChild(root_0, root_1);
12637				}
12638
12639			}
12640
12641
12642			retval.tree = root_0;
12643
12644			}
12645
12646			retval.stop = input.LT(-1);
12647
12648			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12649			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12650
12651		}
12652		catch (RecognitionException re) {
12653			reportError(re);
12654			recover(input,re);
12655			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12656		}
12657		finally {
12658			// do for sure before leaving
12659		}
12660		return retval;
12661	}
12662	// $ANTLR end "insn_format23x"
12663
12664
12665	public static class insn_format30t_return extends ParserRuleReturnScope {
12666		CommonTree tree;
12667		@Override
12668		public CommonTree getTree() { return tree; }
12669	};
12670
12671
12672	// $ANTLR start "insn_format30t"
12673	// smaliParser.g:994:1: insn_format30t : INSTRUCTION_FORMAT30t label_ref -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref ) ;
12674	public final smaliParser.insn_format30t_return insn_format30t() throws RecognitionException {
12675		smaliParser.insn_format30t_return retval = new smaliParser.insn_format30t_return();
12676		retval.start = input.LT(1);
12677
12678		CommonTree root_0 = null;
12679
12680		Token INSTRUCTION_FORMAT30t391=null;
12681		ParserRuleReturnScope label_ref392 =null;
12682
12683		CommonTree INSTRUCTION_FORMAT30t391_tree=null;
12684		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT30t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT30t");
12685		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
12686
12687		try {
12688			// smaliParser.g:995:3: ( INSTRUCTION_FORMAT30t label_ref -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref ) )
12689			// smaliParser.g:996:5: INSTRUCTION_FORMAT30t label_ref
12690			{
12691			INSTRUCTION_FORMAT30t391=(Token)match(input,INSTRUCTION_FORMAT30t,FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t4987);
12692			stream_INSTRUCTION_FORMAT30t.add(INSTRUCTION_FORMAT30t391);
12693
12694			pushFollow(FOLLOW_label_ref_in_insn_format30t4989);
12695			label_ref392=label_ref();
12696			state._fsp--;
12697
12698			stream_label_ref.add(label_ref392.getTree());
12699			// AST REWRITE
12700			// elements: INSTRUCTION_FORMAT30t, label_ref
12701			// token labels:
12702			// rule labels: retval
12703			// token list labels:
12704			// rule list labels:
12705			// wildcard labels:
12706			retval.tree = root_0;
12707			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12708
12709			root_0 = (CommonTree)adaptor.nil();
12710			// 997:5: -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref )
12711			{
12712				// smaliParser.g:997:8: ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref )
12713				{
12714				CommonTree root_1 = (CommonTree)adaptor.nil();
12715				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT30t, (retval.start), "I_STATEMENT_FORMAT30t"), root_1);
12716				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT30t.nextNode());
12717				adaptor.addChild(root_1, stream_label_ref.nextTree());
12718				adaptor.addChild(root_0, root_1);
12719				}
12720
12721			}
12722
12723
12724			retval.tree = root_0;
12725
12726			}
12727
12728			retval.stop = input.LT(-1);
12729
12730			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12731			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12732
12733		}
12734		catch (RecognitionException re) {
12735			reportError(re);
12736			recover(input,re);
12737			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12738		}
12739		finally {
12740			// do for sure before leaving
12741		}
12742		return retval;
12743	}
12744	// $ANTLR end "insn_format30t"
12745
12746
12747	public static class insn_format31c_return extends ParserRuleReturnScope {
12748		CommonTree tree;
12749		@Override
12750		public CommonTree getTree() { return tree; }
12751	};
12752
12753
12754	// $ANTLR start "insn_format31c"
12755	// smaliParser.g:999:1: insn_format31c : INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) ;
12756	public final smaliParser.insn_format31c_return insn_format31c() throws RecognitionException {
12757		smaliParser.insn_format31c_return retval = new smaliParser.insn_format31c_return();
12758		retval.start = input.LT(1);
12759
12760		CommonTree root_0 = null;
12761
12762		Token INSTRUCTION_FORMAT31c393=null;
12763		Token REGISTER394=null;
12764		Token COMMA395=null;
12765		Token STRING_LITERAL396=null;
12766
12767		CommonTree INSTRUCTION_FORMAT31c393_tree=null;
12768		CommonTree REGISTER394_tree=null;
12769		CommonTree COMMA395_tree=null;
12770		CommonTree STRING_LITERAL396_tree=null;
12771		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
12772		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
12773		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31c=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31c");
12774		RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
12775
12776		try {
12777			// smaliParser.g:1000:3: ( INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) )
12778			// smaliParser.g:1001:5: INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL
12779			{
12780			INSTRUCTION_FORMAT31c393=(Token)match(input,INSTRUCTION_FORMAT31c,FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c5019);
12781			stream_INSTRUCTION_FORMAT31c.add(INSTRUCTION_FORMAT31c393);
12782
12783			REGISTER394=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31c5021);
12784			stream_REGISTER.add(REGISTER394);
12785
12786			COMMA395=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format31c5023);
12787			stream_COMMA.add(COMMA395);
12788
12789			STRING_LITERAL396=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_insn_format31c5025);
12790			stream_STRING_LITERAL.add(STRING_LITERAL396);
12791
12792			// AST REWRITE
12793			// elements: REGISTER, STRING_LITERAL, INSTRUCTION_FORMAT31c
12794			// token labels:
12795			// rule labels: retval
12796			// token list labels:
12797			// rule list labels:
12798			// wildcard labels:
12799			retval.tree = root_0;
12800			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12801
12802			root_0 = (CommonTree)adaptor.nil();
12803			// 1002:5: -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL )
12804			{
12805				// smaliParser.g:1002:7: ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL )
12806				{
12807				CommonTree root_1 = (CommonTree)adaptor.nil();
12808				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31c, (retval.start), "I_STATEMENT_FORMAT31c"), root_1);
12809				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31c.nextNode());
12810				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12811				adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
12812				adaptor.addChild(root_0, root_1);
12813				}
12814
12815			}
12816
12817
12818			retval.tree = root_0;
12819
12820			}
12821
12822			retval.stop = input.LT(-1);
12823
12824			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12825			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12826
12827		}
12828		catch (RecognitionException re) {
12829			reportError(re);
12830			recover(input,re);
12831			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12832		}
12833		finally {
12834			// do for sure before leaving
12835		}
12836		return retval;
12837	}
12838	// $ANTLR end "insn_format31c"
12839
12840
12841	public static class insn_format31i_return extends ParserRuleReturnScope {
12842		CommonTree tree;
12843		@Override
12844		public CommonTree getTree() { return tree; }
12845	};
12846
12847
12848	// $ANTLR start "insn_format31i"
12849	// smaliParser.g:1004:1: insn_format31i : instruction_format31i REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) ;
12850	public final smaliParser.insn_format31i_return insn_format31i() throws RecognitionException {
12851		smaliParser.insn_format31i_return retval = new smaliParser.insn_format31i_return();
12852		retval.start = input.LT(1);
12853
12854		CommonTree root_0 = null;
12855
12856		Token REGISTER398=null;
12857		Token COMMA399=null;
12858		ParserRuleReturnScope instruction_format31i397 =null;
12859		ParserRuleReturnScope fixed_32bit_literal400 =null;
12860
12861		CommonTree REGISTER398_tree=null;
12862		CommonTree COMMA399_tree=null;
12863		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
12864		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
12865		RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
12866		RewriteRuleSubtreeStream stream_instruction_format31i=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format31i");
12867
12868		try {
12869			// smaliParser.g:1005:3: ( instruction_format31i REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) )
12870			// smaliParser.g:1006:5: instruction_format31i REGISTER COMMA fixed_32bit_literal
12871			{
12872			pushFollow(FOLLOW_instruction_format31i_in_insn_format31i5056);
12873			instruction_format31i397=instruction_format31i();
12874			state._fsp--;
12875
12876			stream_instruction_format31i.add(instruction_format31i397.getTree());
12877			REGISTER398=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31i5058);
12878			stream_REGISTER.add(REGISTER398);
12879
12880			COMMA399=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format31i5060);
12881			stream_COMMA.add(COMMA399);
12882
12883			pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format31i5062);
12884			fixed_32bit_literal400=fixed_32bit_literal();
12885			state._fsp--;
12886
12887			stream_fixed_32bit_literal.add(fixed_32bit_literal400.getTree());
12888			// AST REWRITE
12889			// elements: instruction_format31i, REGISTER, fixed_32bit_literal
12890			// token labels:
12891			// rule labels: retval
12892			// token list labels:
12893			// rule list labels:
12894			// wildcard labels:
12895			retval.tree = root_0;
12896			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12897
12898			root_0 = (CommonTree)adaptor.nil();
12899			// 1007:5: -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal )
12900			{
12901				// smaliParser.g:1007:8: ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal )
12902				{
12903				CommonTree root_1 = (CommonTree)adaptor.nil();
12904				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31i, (retval.start), "I_STATEMENT_FORMAT31i"), root_1);
12905				adaptor.addChild(root_1, stream_instruction_format31i.nextTree());
12906				adaptor.addChild(root_1, stream_REGISTER.nextNode());
12907				adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
12908				adaptor.addChild(root_0, root_1);
12909				}
12910
12911			}
12912
12913
12914			retval.tree = root_0;
12915
12916			}
12917
12918			retval.stop = input.LT(-1);
12919
12920			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
12921			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
12922
12923		}
12924		catch (RecognitionException re) {
12925			reportError(re);
12926			recover(input,re);
12927			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
12928		}
12929		finally {
12930			// do for sure before leaving
12931		}
12932		return retval;
12933	}
12934	// $ANTLR end "insn_format31i"
12935
12936
12937	public static class insn_format31t_return extends ParserRuleReturnScope {
12938		CommonTree tree;
12939		@Override
12940		public CommonTree getTree() { return tree; }
12941	};
12942
12943
12944	// $ANTLR start "insn_format31t"
12945	// smaliParser.g:1009:1: insn_format31t : INSTRUCTION_FORMAT31t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref ) ;
12946	public final smaliParser.insn_format31t_return insn_format31t() throws RecognitionException {
12947		smaliParser.insn_format31t_return retval = new smaliParser.insn_format31t_return();
12948		retval.start = input.LT(1);
12949
12950		CommonTree root_0 = null;
12951
12952		Token INSTRUCTION_FORMAT31t401=null;
12953		Token REGISTER402=null;
12954		Token COMMA403=null;
12955		ParserRuleReturnScope label_ref404 =null;
12956
12957		CommonTree INSTRUCTION_FORMAT31t401_tree=null;
12958		CommonTree REGISTER402_tree=null;
12959		CommonTree COMMA403_tree=null;
12960		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
12961		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
12962		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31t");
12963		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
12964
12965		try {
12966			// smaliParser.g:1010:3: ( INSTRUCTION_FORMAT31t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref ) )
12967			// smaliParser.g:1011:5: INSTRUCTION_FORMAT31t REGISTER COMMA label_ref
12968			{
12969			INSTRUCTION_FORMAT31t401=(Token)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t5094);
12970			stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t401);
12971
12972			REGISTER402=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31t5096);
12973			stream_REGISTER.add(REGISTER402);
12974
12975			COMMA403=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format31t5098);
12976			stream_COMMA.add(COMMA403);
12977
12978			pushFollow(FOLLOW_label_ref_in_insn_format31t5100);
12979			label_ref404=label_ref();
12980			state._fsp--;
12981
12982			stream_label_ref.add(label_ref404.getTree());
12983			// AST REWRITE
12984			// elements: INSTRUCTION_FORMAT31t, REGISTER, label_ref
12985			// token labels:
12986			// rule labels: retval
12987			// token list labels:
12988			// rule list labels:
12989			// wildcard labels:
12990			retval.tree = root_0;
12991			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
12992
12993			root_0 = (CommonTree)adaptor.nil();
12994			// 1012:5: -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref )
12995			{
12996				// smaliParser.g:1012:8: ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref )
12997				{
12998				CommonTree root_1 = (CommonTree)adaptor.nil();
12999				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31t, (retval.start), "I_STATEMENT_FORMAT31t"), root_1);
13000				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31t.nextNode());
13001				adaptor.addChild(root_1, stream_REGISTER.nextNode());
13002				adaptor.addChild(root_1, stream_label_ref.nextTree());
13003				adaptor.addChild(root_0, root_1);
13004				}
13005
13006			}
13007
13008
13009			retval.tree = root_0;
13010
13011			}
13012
13013			retval.stop = input.LT(-1);
13014
13015			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13016			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13017
13018		}
13019		catch (RecognitionException re) {
13020			reportError(re);
13021			recover(input,re);
13022			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13023		}
13024		finally {
13025			// do for sure before leaving
13026		}
13027		return retval;
13028	}
13029	// $ANTLR end "insn_format31t"
13030
13031
13032	public static class insn_format32x_return extends ParserRuleReturnScope {
13033		CommonTree tree;
13034		@Override
13035		public CommonTree getTree() { return tree; }
13036	};
13037
13038
13039	// $ANTLR start "insn_format32x"
13040	// smaliParser.g:1014:1: insn_format32x : INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) ;
13041	public final smaliParser.insn_format32x_return insn_format32x() throws RecognitionException {
13042		smaliParser.insn_format32x_return retval = new smaliParser.insn_format32x_return();
13043		retval.start = input.LT(1);
13044
13045		CommonTree root_0 = null;
13046
13047		Token INSTRUCTION_FORMAT32x405=null;
13048		Token REGISTER406=null;
13049		Token COMMA407=null;
13050		Token REGISTER408=null;
13051
13052		CommonTree INSTRUCTION_FORMAT32x405_tree=null;
13053		CommonTree REGISTER406_tree=null;
13054		CommonTree COMMA407_tree=null;
13055		CommonTree REGISTER408_tree=null;
13056		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
13057		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
13058		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT32x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT32x");
13059
13060		try {
13061			// smaliParser.g:1015:3: ( INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) )
13062			// smaliParser.g:1016:5: INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER
13063			{
13064			INSTRUCTION_FORMAT32x405=(Token)match(input,INSTRUCTION_FORMAT32x,FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x5132);
13065			stream_INSTRUCTION_FORMAT32x.add(INSTRUCTION_FORMAT32x405);
13066
13067			REGISTER406=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x5134);
13068			stream_REGISTER.add(REGISTER406);
13069
13070			COMMA407=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format32x5136);
13071			stream_COMMA.add(COMMA407);
13072
13073			REGISTER408=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x5138);
13074			stream_REGISTER.add(REGISTER408);
13075
13076			// AST REWRITE
13077			// elements: INSTRUCTION_FORMAT32x, REGISTER, REGISTER
13078			// token labels:
13079			// rule labels: retval
13080			// token list labels:
13081			// rule list labels:
13082			// wildcard labels:
13083			retval.tree = root_0;
13084			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
13085
13086			root_0 = (CommonTree)adaptor.nil();
13087			// 1017:5: -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER )
13088			{
13089				// smaliParser.g:1017:8: ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER )
13090				{
13091				CommonTree root_1 = (CommonTree)adaptor.nil();
13092				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT32x, (retval.start), "I_STATEMENT_FORMAT32x"), root_1);
13093				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT32x.nextNode());
13094				adaptor.addChild(root_1, stream_REGISTER.nextNode());
13095				adaptor.addChild(root_1, stream_REGISTER.nextNode());
13096				adaptor.addChild(root_0, root_1);
13097				}
13098
13099			}
13100
13101
13102			retval.tree = root_0;
13103
13104			}
13105
13106			retval.stop = input.LT(-1);
13107
13108			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13109			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13110
13111		}
13112		catch (RecognitionException re) {
13113			reportError(re);
13114			recover(input,re);
13115			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13116		}
13117		finally {
13118			// do for sure before leaving
13119		}
13120		return retval;
13121	}
13122	// $ANTLR end "insn_format32x"
13123
13124
13125	public static class insn_format35c_method_return extends ParserRuleReturnScope {
13126		CommonTree tree;
13127		@Override
13128		public CommonTree getTree() { return tree; }
13129	};
13130
13131
13132	// $ANTLR start "insn_format35c_method"
13133	// smaliParser.g:1019:1: insn_format35c_method : INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) ;
13134	public final smaliParser.insn_format35c_method_return insn_format35c_method() throws RecognitionException {
13135		smaliParser.insn_format35c_method_return retval = new smaliParser.insn_format35c_method_return();
13136		retval.start = input.LT(1);
13137
13138		CommonTree root_0 = null;
13139
13140		Token INSTRUCTION_FORMAT35c_METHOD409=null;
13141		Token OPEN_BRACE410=null;
13142		Token CLOSE_BRACE412=null;
13143		Token COMMA413=null;
13144		ParserRuleReturnScope register_list411 =null;
13145		ParserRuleReturnScope method_reference414 =null;
13146
13147		CommonTree INSTRUCTION_FORMAT35c_METHOD409_tree=null;
13148		CommonTree OPEN_BRACE410_tree=null;
13149		CommonTree CLOSE_BRACE412_tree=null;
13150		CommonTree COMMA413_tree=null;
13151		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD");
13152		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
13153		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
13154		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
13155		RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
13156		RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list");
13157
13158		try {
13159			// smaliParser.g:1020:3: ( INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) )
13160			// smaliParser.g:1021:5: INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference
13161			{
13162			INSTRUCTION_FORMAT35c_METHOD409=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method5170);
13163			stream_INSTRUCTION_FORMAT35c_METHOD.add(INSTRUCTION_FORMAT35c_METHOD409);
13164
13165			OPEN_BRACE410=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35c_method5172);
13166			stream_OPEN_BRACE.add(OPEN_BRACE410);
13167
13168			pushFollow(FOLLOW_register_list_in_insn_format35c_method5174);
13169			register_list411=register_list();
13170			state._fsp--;
13171
13172			stream_register_list.add(register_list411.getTree());
13173			CLOSE_BRACE412=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35c_method5176);
13174			stream_CLOSE_BRACE.add(CLOSE_BRACE412);
13175
13176			COMMA413=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35c_method5178);
13177			stream_COMMA.add(COMMA413);
13178
13179			pushFollow(FOLLOW_method_reference_in_insn_format35c_method5180);
13180			method_reference414=method_reference();
13181			state._fsp--;
13182
13183			stream_method_reference.add(method_reference414.getTree());
13184			// AST REWRITE
13185			// elements: INSTRUCTION_FORMAT35c_METHOD, register_list, method_reference
13186			// token labels:
13187			// rule labels: retval
13188			// token list labels:
13189			// rule list labels:
13190			// wildcard labels:
13191			retval.tree = root_0;
13192			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
13193
13194			root_0 = (CommonTree)adaptor.nil();
13195			// 1022:5: -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference )
13196			{
13197				// smaliParser.g:1022:8: ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference )
13198				{
13199				CommonTree root_1 = (CommonTree)adaptor.nil();
13200				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT35c_METHOD, (retval.start), "I_STATEMENT_FORMAT35c_METHOD"), root_1);
13201				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_METHOD.nextNode());
13202				adaptor.addChild(root_1, stream_register_list.nextTree());
13203				adaptor.addChild(root_1, stream_method_reference.nextTree());
13204				adaptor.addChild(root_0, root_1);
13205				}
13206
13207			}
13208
13209
13210			retval.tree = root_0;
13211
13212			}
13213
13214			retval.stop = input.LT(-1);
13215
13216			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13217			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13218
13219		}
13220		catch (RecognitionException re) {
13221			reportError(re);
13222			recover(input,re);
13223			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13224		}
13225		finally {
13226			// do for sure before leaving
13227		}
13228		return retval;
13229	}
13230	// $ANTLR end "insn_format35c_method"
13231
13232
13233	public static class insn_format35c_type_return extends ParserRuleReturnScope {
13234		CommonTree tree;
13235		@Override
13236		public CommonTree getTree() { return tree; }
13237	};
13238
13239
13240	// $ANTLR start "insn_format35c_type"
13241	// smaliParser.g:1024:1: insn_format35c_type : INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) ;
13242	public final smaliParser.insn_format35c_type_return insn_format35c_type() throws RecognitionException {
13243		smaliParser.insn_format35c_type_return retval = new smaliParser.insn_format35c_type_return();
13244		retval.start = input.LT(1);
13245
13246		CommonTree root_0 = null;
13247
13248		Token INSTRUCTION_FORMAT35c_TYPE415=null;
13249		Token OPEN_BRACE416=null;
13250		Token CLOSE_BRACE418=null;
13251		Token COMMA419=null;
13252		ParserRuleReturnScope register_list417 =null;
13253		ParserRuleReturnScope nonvoid_type_descriptor420 =null;
13254
13255		CommonTree INSTRUCTION_FORMAT35c_TYPE415_tree=null;
13256		CommonTree OPEN_BRACE416_tree=null;
13257		CommonTree CLOSE_BRACE418_tree=null;
13258		CommonTree COMMA419_tree=null;
13259		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
13260		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_TYPE");
13261		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
13262		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
13263		RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list");
13264		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
13265
13266		try {
13267			// smaliParser.g:1025:3: ( INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) )
13268			// smaliParser.g:1026:5: INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor
13269			{
13270			INSTRUCTION_FORMAT35c_TYPE415=(Token)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type5212);
13271			stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE415);
13272
13273			OPEN_BRACE416=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35c_type5214);
13274			stream_OPEN_BRACE.add(OPEN_BRACE416);
13275
13276			pushFollow(FOLLOW_register_list_in_insn_format35c_type5216);
13277			register_list417=register_list();
13278			state._fsp--;
13279
13280			stream_register_list.add(register_list417.getTree());
13281			CLOSE_BRACE418=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35c_type5218);
13282			stream_CLOSE_BRACE.add(CLOSE_BRACE418);
13283
13284			COMMA419=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35c_type5220);
13285			stream_COMMA.add(COMMA419);
13286
13287			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type5222);
13288			nonvoid_type_descriptor420=nonvoid_type_descriptor();
13289			state._fsp--;
13290
13291			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor420.getTree());
13292			// AST REWRITE
13293			// elements: register_list, INSTRUCTION_FORMAT35c_TYPE, nonvoid_type_descriptor
13294			// token labels:
13295			// rule labels: retval
13296			// token list labels:
13297			// rule list labels:
13298			// wildcard labels:
13299			retval.tree = root_0;
13300			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
13301
13302			root_0 = (CommonTree)adaptor.nil();
13303			// 1027:5: -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor )
13304			{
13305				// smaliParser.g:1027:8: ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor )
13306				{
13307				CommonTree root_1 = (CommonTree)adaptor.nil();
13308				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT35c_TYPE, (retval.start), "I_STATEMENT_FORMAT35c_TYPE"), root_1);
13309				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_TYPE.nextNode());
13310				adaptor.addChild(root_1, stream_register_list.nextTree());
13311				adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
13312				adaptor.addChild(root_0, root_1);
13313				}
13314
13315			}
13316
13317
13318			retval.tree = root_0;
13319
13320			}
13321
13322			retval.stop = input.LT(-1);
13323
13324			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13325			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13326
13327		}
13328		catch (RecognitionException re) {
13329			reportError(re);
13330			recover(input,re);
13331			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13332		}
13333		finally {
13334			// do for sure before leaving
13335		}
13336		return retval;
13337	}
13338	// $ANTLR end "insn_format35c_type"
13339
13340
13341	public static class insn_format35c_method_odex_return extends ParserRuleReturnScope {
13342		CommonTree tree;
13343		@Override
13344		public CommonTree getTree() { return tree; }
13345	};
13346
13347
13348	// $ANTLR start "insn_format35c_method_odex"
13349	// smaliParser.g:1029:1: insn_format35c_method_odex : INSTRUCTION_FORMAT35c_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference ;
13350	public final smaliParser.insn_format35c_method_odex_return insn_format35c_method_odex() throws RecognitionException {
13351		smaliParser.insn_format35c_method_odex_return retval = new smaliParser.insn_format35c_method_odex_return();
13352		retval.start = input.LT(1);
13353
13354		CommonTree root_0 = null;
13355
13356		Token INSTRUCTION_FORMAT35c_METHOD_ODEX421=null;
13357		Token OPEN_BRACE422=null;
13358		Token CLOSE_BRACE424=null;
13359		Token COMMA425=null;
13360		ParserRuleReturnScope register_list423 =null;
13361		ParserRuleReturnScope method_reference426 =null;
13362
13363		CommonTree INSTRUCTION_FORMAT35c_METHOD_ODEX421_tree=null;
13364		CommonTree OPEN_BRACE422_tree=null;
13365		CommonTree CLOSE_BRACE424_tree=null;
13366		CommonTree COMMA425_tree=null;
13367
13368		try {
13369			// smaliParser.g:1030:3: ( INSTRUCTION_FORMAT35c_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference )
13370			// smaliParser.g:1031:5: INSTRUCTION_FORMAT35c_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference
13371			{
13372			root_0 = (CommonTree)adaptor.nil();
13373
13374
13375			INSTRUCTION_FORMAT35c_METHOD_ODEX421=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD_ODEX,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_insn_format35c_method_odex5254);
13376			INSTRUCTION_FORMAT35c_METHOD_ODEX421_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35c_METHOD_ODEX421);
13377			adaptor.addChild(root_0, INSTRUCTION_FORMAT35c_METHOD_ODEX421_tree);
13378
13379			OPEN_BRACE422=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35c_method_odex5256);
13380			OPEN_BRACE422_tree = (CommonTree)adaptor.create(OPEN_BRACE422);
13381			adaptor.addChild(root_0, OPEN_BRACE422_tree);
13382
13383			pushFollow(FOLLOW_register_list_in_insn_format35c_method_odex5258);
13384			register_list423=register_list();
13385			state._fsp--;
13386
13387			adaptor.addChild(root_0, register_list423.getTree());
13388
13389			CLOSE_BRACE424=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35c_method_odex5260);
13390			CLOSE_BRACE424_tree = (CommonTree)adaptor.create(CLOSE_BRACE424);
13391			adaptor.addChild(root_0, CLOSE_BRACE424_tree);
13392
13393			COMMA425=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35c_method_odex5262);
13394			COMMA425_tree = (CommonTree)adaptor.create(COMMA425);
13395			adaptor.addChild(root_0, COMMA425_tree);
13396
13397			pushFollow(FOLLOW_method_reference_in_insn_format35c_method_odex5264);
13398			method_reference426=method_reference();
13399			state._fsp--;
13400
13401			adaptor.addChild(root_0, method_reference426.getTree());
13402
13403
13404			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35c_METHOD_ODEX421!=null?INSTRUCTION_FORMAT35c_METHOD_ODEX421.getText():null));
13405
13406			}
13407
13408			retval.stop = input.LT(-1);
13409
13410			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13411			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13412
13413		}
13414		catch (RecognitionException re) {
13415			reportError(re);
13416			recover(input,re);
13417			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13418		}
13419		finally {
13420			// do for sure before leaving
13421		}
13422		return retval;
13423	}
13424	// $ANTLR end "insn_format35c_method_odex"
13425
13426
13427	public static class insn_format35mi_method_return extends ParserRuleReturnScope {
13428		CommonTree tree;
13429		@Override
13430		public CommonTree getTree() { return tree; }
13431	};
13432
13433
13434	// $ANTLR start "insn_format35mi_method"
13435	// smaliParser.g:1036:1: insn_format35mi_method : INSTRUCTION_FORMAT35mi_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA INLINE_INDEX ;
13436	public final smaliParser.insn_format35mi_method_return insn_format35mi_method() throws RecognitionException {
13437		smaliParser.insn_format35mi_method_return retval = new smaliParser.insn_format35mi_method_return();
13438		retval.start = input.LT(1);
13439
13440		CommonTree root_0 = null;
13441
13442		Token INSTRUCTION_FORMAT35mi_METHOD427=null;
13443		Token OPEN_BRACE428=null;
13444		Token CLOSE_BRACE430=null;
13445		Token COMMA431=null;
13446		Token INLINE_INDEX432=null;
13447		ParserRuleReturnScope register_list429 =null;
13448
13449		CommonTree INSTRUCTION_FORMAT35mi_METHOD427_tree=null;
13450		CommonTree OPEN_BRACE428_tree=null;
13451		CommonTree CLOSE_BRACE430_tree=null;
13452		CommonTree COMMA431_tree=null;
13453		CommonTree INLINE_INDEX432_tree=null;
13454
13455		try {
13456			// smaliParser.g:1037:3: ( INSTRUCTION_FORMAT35mi_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA INLINE_INDEX )
13457			// smaliParser.g:1038:5: INSTRUCTION_FORMAT35mi_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA INLINE_INDEX
13458			{
13459			root_0 = (CommonTree)adaptor.nil();
13460
13461
13462			INSTRUCTION_FORMAT35mi_METHOD427=(Token)match(input,INSTRUCTION_FORMAT35mi_METHOD,FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_insn_format35mi_method5285);
13463			INSTRUCTION_FORMAT35mi_METHOD427_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35mi_METHOD427);
13464			adaptor.addChild(root_0, INSTRUCTION_FORMAT35mi_METHOD427_tree);
13465
13466			OPEN_BRACE428=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35mi_method5287);
13467			OPEN_BRACE428_tree = (CommonTree)adaptor.create(OPEN_BRACE428);
13468			adaptor.addChild(root_0, OPEN_BRACE428_tree);
13469
13470			pushFollow(FOLLOW_register_list_in_insn_format35mi_method5289);
13471			register_list429=register_list();
13472			state._fsp--;
13473
13474			adaptor.addChild(root_0, register_list429.getTree());
13475
13476			CLOSE_BRACE430=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35mi_method5291);
13477			CLOSE_BRACE430_tree = (CommonTree)adaptor.create(CLOSE_BRACE430);
13478			adaptor.addChild(root_0, CLOSE_BRACE430_tree);
13479
13480			COMMA431=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35mi_method5293);
13481			COMMA431_tree = (CommonTree)adaptor.create(COMMA431);
13482			adaptor.addChild(root_0, COMMA431_tree);
13483
13484			INLINE_INDEX432=(Token)match(input,INLINE_INDEX,FOLLOW_INLINE_INDEX_in_insn_format35mi_method5295);
13485			INLINE_INDEX432_tree = (CommonTree)adaptor.create(INLINE_INDEX432);
13486			adaptor.addChild(root_0, INLINE_INDEX432_tree);
13487
13488
13489			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35mi_METHOD427!=null?INSTRUCTION_FORMAT35mi_METHOD427.getText():null));
13490
13491			}
13492
13493			retval.stop = input.LT(-1);
13494
13495			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13496			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13497
13498		}
13499		catch (RecognitionException re) {
13500			reportError(re);
13501			recover(input,re);
13502			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13503		}
13504		finally {
13505			// do for sure before leaving
13506		}
13507		return retval;
13508	}
13509	// $ANTLR end "insn_format35mi_method"
13510
13511
13512	public static class insn_format35ms_method_return extends ParserRuleReturnScope {
13513		CommonTree tree;
13514		@Override
13515		public CommonTree getTree() { return tree; }
13516	};
13517
13518
13519	// $ANTLR start "insn_format35ms_method"
13520	// smaliParser.g:1043:1: insn_format35ms_method : INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_INDEX ;
13521	public final smaliParser.insn_format35ms_method_return insn_format35ms_method() throws RecognitionException {
13522		smaliParser.insn_format35ms_method_return retval = new smaliParser.insn_format35ms_method_return();
13523		retval.start = input.LT(1);
13524
13525		CommonTree root_0 = null;
13526
13527		Token INSTRUCTION_FORMAT35ms_METHOD433=null;
13528		Token OPEN_BRACE434=null;
13529		Token CLOSE_BRACE436=null;
13530		Token COMMA437=null;
13531		Token VTABLE_INDEX438=null;
13532		ParserRuleReturnScope register_list435 =null;
13533
13534		CommonTree INSTRUCTION_FORMAT35ms_METHOD433_tree=null;
13535		CommonTree OPEN_BRACE434_tree=null;
13536		CommonTree CLOSE_BRACE436_tree=null;
13537		CommonTree COMMA437_tree=null;
13538		CommonTree VTABLE_INDEX438_tree=null;
13539
13540		try {
13541			// smaliParser.g:1044:3: ( INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_INDEX )
13542			// smaliParser.g:1045:5: INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_INDEX
13543			{
13544			root_0 = (CommonTree)adaptor.nil();
13545
13546
13547			INSTRUCTION_FORMAT35ms_METHOD433=(Token)match(input,INSTRUCTION_FORMAT35ms_METHOD,FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_insn_format35ms_method5316);
13548			INSTRUCTION_FORMAT35ms_METHOD433_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35ms_METHOD433);
13549			adaptor.addChild(root_0, INSTRUCTION_FORMAT35ms_METHOD433_tree);
13550
13551			OPEN_BRACE434=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35ms_method5318);
13552			OPEN_BRACE434_tree = (CommonTree)adaptor.create(OPEN_BRACE434);
13553			adaptor.addChild(root_0, OPEN_BRACE434_tree);
13554
13555			pushFollow(FOLLOW_register_list_in_insn_format35ms_method5320);
13556			register_list435=register_list();
13557			state._fsp--;
13558
13559			adaptor.addChild(root_0, register_list435.getTree());
13560
13561			CLOSE_BRACE436=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35ms_method5322);
13562			CLOSE_BRACE436_tree = (CommonTree)adaptor.create(CLOSE_BRACE436);
13563			adaptor.addChild(root_0, CLOSE_BRACE436_tree);
13564
13565			COMMA437=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35ms_method5324);
13566			COMMA437_tree = (CommonTree)adaptor.create(COMMA437);
13567			adaptor.addChild(root_0, COMMA437_tree);
13568
13569			VTABLE_INDEX438=(Token)match(input,VTABLE_INDEX,FOLLOW_VTABLE_INDEX_in_insn_format35ms_method5326);
13570			VTABLE_INDEX438_tree = (CommonTree)adaptor.create(VTABLE_INDEX438);
13571			adaptor.addChild(root_0, VTABLE_INDEX438_tree);
13572
13573
13574			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35ms_METHOD433!=null?INSTRUCTION_FORMAT35ms_METHOD433.getText():null));
13575
13576			}
13577
13578			retval.stop = input.LT(-1);
13579
13580			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13581			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13582
13583		}
13584		catch (RecognitionException re) {
13585			reportError(re);
13586			recover(input,re);
13587			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13588		}
13589		finally {
13590			// do for sure before leaving
13591		}
13592		return retval;
13593	}
13594	// $ANTLR end "insn_format35ms_method"
13595
13596
13597	public static class insn_format3rc_method_return extends ParserRuleReturnScope {
13598		CommonTree tree;
13599		@Override
13600		public CommonTree getTree() { return tree; }
13601	};
13602
13603
13604	// $ANTLR start "insn_format3rc_method"
13605	// smaliParser.g:1050:1: insn_format3rc_method : INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) ;
13606	public final smaliParser.insn_format3rc_method_return insn_format3rc_method() throws RecognitionException {
13607		smaliParser.insn_format3rc_method_return retval = new smaliParser.insn_format3rc_method_return();
13608		retval.start = input.LT(1);
13609
13610		CommonTree root_0 = null;
13611
13612		Token INSTRUCTION_FORMAT3rc_METHOD439=null;
13613		Token OPEN_BRACE440=null;
13614		Token CLOSE_BRACE442=null;
13615		Token COMMA443=null;
13616		ParserRuleReturnScope register_range441 =null;
13617		ParserRuleReturnScope method_reference444 =null;
13618
13619		CommonTree INSTRUCTION_FORMAT3rc_METHOD439_tree=null;
13620		CommonTree OPEN_BRACE440_tree=null;
13621		CommonTree CLOSE_BRACE442_tree=null;
13622		CommonTree COMMA443_tree=null;
13623		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
13624		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT3rc_METHOD");
13625		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
13626		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
13627		RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
13628		RewriteRuleSubtreeStream stream_register_range=new RewriteRuleSubtreeStream(adaptor,"rule register_range");
13629
13630		try {
13631			// smaliParser.g:1051:3: ( INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) )
13632			// smaliParser.g:1052:5: INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference
13633			{
13634			INSTRUCTION_FORMAT3rc_METHOD439=(Token)match(input,INSTRUCTION_FORMAT3rc_METHOD,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method5347);
13635			stream_INSTRUCTION_FORMAT3rc_METHOD.add(INSTRUCTION_FORMAT3rc_METHOD439);
13636
13637			OPEN_BRACE440=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rc_method5349);
13638			stream_OPEN_BRACE.add(OPEN_BRACE440);
13639
13640			pushFollow(FOLLOW_register_range_in_insn_format3rc_method5351);
13641			register_range441=register_range();
13642			state._fsp--;
13643
13644			stream_register_range.add(register_range441.getTree());
13645			CLOSE_BRACE442=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rc_method5353);
13646			stream_CLOSE_BRACE.add(CLOSE_BRACE442);
13647
13648			COMMA443=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rc_method5355);
13649			stream_COMMA.add(COMMA443);
13650
13651			pushFollow(FOLLOW_method_reference_in_insn_format3rc_method5357);
13652			method_reference444=method_reference();
13653			state._fsp--;
13654
13655			stream_method_reference.add(method_reference444.getTree());
13656			// AST REWRITE
13657			// elements: register_range, INSTRUCTION_FORMAT3rc_METHOD, method_reference
13658			// token labels:
13659			// rule labels: retval
13660			// token list labels:
13661			// rule list labels:
13662			// wildcard labels:
13663			retval.tree = root_0;
13664			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
13665
13666			root_0 = (CommonTree)adaptor.nil();
13667			// 1053:5: -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference )
13668			{
13669				// smaliParser.g:1053:8: ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference )
13670				{
13671				CommonTree root_1 = (CommonTree)adaptor.nil();
13672				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT3rc_METHOD, (retval.start), "I_STATEMENT_FORMAT3rc_METHOD"), root_1);
13673				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_METHOD.nextNode());
13674				adaptor.addChild(root_1, stream_register_range.nextTree());
13675				adaptor.addChild(root_1, stream_method_reference.nextTree());
13676				adaptor.addChild(root_0, root_1);
13677				}
13678
13679			}
13680
13681
13682			retval.tree = root_0;
13683
13684			}
13685
13686			retval.stop = input.LT(-1);
13687
13688			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13689			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13690
13691		}
13692		catch (RecognitionException re) {
13693			reportError(re);
13694			recover(input,re);
13695			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13696		}
13697		finally {
13698			// do for sure before leaving
13699		}
13700		return retval;
13701	}
13702	// $ANTLR end "insn_format3rc_method"
13703
13704
13705	public static class insn_format3rc_method_odex_return extends ParserRuleReturnScope {
13706		CommonTree tree;
13707		@Override
13708		public CommonTree getTree() { return tree; }
13709	};
13710
13711
13712	// $ANTLR start "insn_format3rc_method_odex"
13713	// smaliParser.g:1055:1: insn_format3rc_method_odex : INSTRUCTION_FORMAT3rc_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference ;
13714	public final smaliParser.insn_format3rc_method_odex_return insn_format3rc_method_odex() throws RecognitionException {
13715		smaliParser.insn_format3rc_method_odex_return retval = new smaliParser.insn_format3rc_method_odex_return();
13716		retval.start = input.LT(1);
13717
13718		CommonTree root_0 = null;
13719
13720		Token INSTRUCTION_FORMAT3rc_METHOD_ODEX445=null;
13721		Token OPEN_BRACE446=null;
13722		Token CLOSE_BRACE448=null;
13723		Token COMMA449=null;
13724		ParserRuleReturnScope register_list447 =null;
13725		ParserRuleReturnScope method_reference450 =null;
13726
13727		CommonTree INSTRUCTION_FORMAT3rc_METHOD_ODEX445_tree=null;
13728		CommonTree OPEN_BRACE446_tree=null;
13729		CommonTree CLOSE_BRACE448_tree=null;
13730		CommonTree COMMA449_tree=null;
13731
13732		try {
13733			// smaliParser.g:1056:3: ( INSTRUCTION_FORMAT3rc_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference )
13734			// smaliParser.g:1057:5: INSTRUCTION_FORMAT3rc_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference
13735			{
13736			root_0 = (CommonTree)adaptor.nil();
13737
13738
13739			INSTRUCTION_FORMAT3rc_METHOD_ODEX445=(Token)match(input,INSTRUCTION_FORMAT3rc_METHOD_ODEX,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_ODEX_in_insn_format3rc_method_odex5389);
13740			INSTRUCTION_FORMAT3rc_METHOD_ODEX445_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rc_METHOD_ODEX445);
13741			adaptor.addChild(root_0, INSTRUCTION_FORMAT3rc_METHOD_ODEX445_tree);
13742
13743			OPEN_BRACE446=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rc_method_odex5391);
13744			OPEN_BRACE446_tree = (CommonTree)adaptor.create(OPEN_BRACE446);
13745			adaptor.addChild(root_0, OPEN_BRACE446_tree);
13746
13747			pushFollow(FOLLOW_register_list_in_insn_format3rc_method_odex5393);
13748			register_list447=register_list();
13749			state._fsp--;
13750
13751			adaptor.addChild(root_0, register_list447.getTree());
13752
13753			CLOSE_BRACE448=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rc_method_odex5395);
13754			CLOSE_BRACE448_tree = (CommonTree)adaptor.create(CLOSE_BRACE448);
13755			adaptor.addChild(root_0, CLOSE_BRACE448_tree);
13756
13757			COMMA449=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rc_method_odex5397);
13758			COMMA449_tree = (CommonTree)adaptor.create(COMMA449);
13759			adaptor.addChild(root_0, COMMA449_tree);
13760
13761			pushFollow(FOLLOW_method_reference_in_insn_format3rc_method_odex5399);
13762			method_reference450=method_reference();
13763			state._fsp--;
13764
13765			adaptor.addChild(root_0, method_reference450.getTree());
13766
13767
13768			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rc_METHOD_ODEX445!=null?INSTRUCTION_FORMAT3rc_METHOD_ODEX445.getText():null));
13769
13770			}
13771
13772			retval.stop = input.LT(-1);
13773
13774			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13775			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13776
13777		}
13778		catch (RecognitionException re) {
13779			reportError(re);
13780			recover(input,re);
13781			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13782		}
13783		finally {
13784			// do for sure before leaving
13785		}
13786		return retval;
13787	}
13788	// $ANTLR end "insn_format3rc_method_odex"
13789
13790
13791	public static class insn_format3rc_type_return extends ParserRuleReturnScope {
13792		CommonTree tree;
13793		@Override
13794		public CommonTree getTree() { return tree; }
13795	};
13796
13797
13798	// $ANTLR start "insn_format3rc_type"
13799	// smaliParser.g:1062:1: insn_format3rc_type : INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) ;
13800	public final smaliParser.insn_format3rc_type_return insn_format3rc_type() throws RecognitionException {
13801		smaliParser.insn_format3rc_type_return retval = new smaliParser.insn_format3rc_type_return();
13802		retval.start = input.LT(1);
13803
13804		CommonTree root_0 = null;
13805
13806		Token INSTRUCTION_FORMAT3rc_TYPE451=null;
13807		Token OPEN_BRACE452=null;
13808		Token CLOSE_BRACE454=null;
13809		Token COMMA455=null;
13810		ParserRuleReturnScope register_range453 =null;
13811		ParserRuleReturnScope nonvoid_type_descriptor456 =null;
13812
13813		CommonTree INSTRUCTION_FORMAT3rc_TYPE451_tree=null;
13814		CommonTree OPEN_BRACE452_tree=null;
13815		CommonTree CLOSE_BRACE454_tree=null;
13816		CommonTree COMMA455_tree=null;
13817		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
13818		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
13819		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
13820		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT3rc_TYPE");
13821		RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
13822		RewriteRuleSubtreeStream stream_register_range=new RewriteRuleSubtreeStream(adaptor,"rule register_range");
13823
13824		try {
13825			// smaliParser.g:1063:3: ( INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) )
13826			// smaliParser.g:1064:5: INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor
13827			{
13828			INSTRUCTION_FORMAT3rc_TYPE451=(Token)match(input,INSTRUCTION_FORMAT3rc_TYPE,FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type5420);
13829			stream_INSTRUCTION_FORMAT3rc_TYPE.add(INSTRUCTION_FORMAT3rc_TYPE451);
13830
13831			OPEN_BRACE452=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rc_type5422);
13832			stream_OPEN_BRACE.add(OPEN_BRACE452);
13833
13834			pushFollow(FOLLOW_register_range_in_insn_format3rc_type5424);
13835			register_range453=register_range();
13836			state._fsp--;
13837
13838			stream_register_range.add(register_range453.getTree());
13839			CLOSE_BRACE454=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rc_type5426);
13840			stream_CLOSE_BRACE.add(CLOSE_BRACE454);
13841
13842			COMMA455=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rc_type5428);
13843			stream_COMMA.add(COMMA455);
13844
13845			pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type5430);
13846			nonvoid_type_descriptor456=nonvoid_type_descriptor();
13847			state._fsp--;
13848
13849			stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor456.getTree());
13850			// AST REWRITE
13851			// elements: nonvoid_type_descriptor, INSTRUCTION_FORMAT3rc_TYPE, register_range
13852			// token labels:
13853			// rule labels: retval
13854			// token list labels:
13855			// rule list labels:
13856			// wildcard labels:
13857			retval.tree = root_0;
13858			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
13859
13860			root_0 = (CommonTree)adaptor.nil();
13861			// 1065:5: -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor )
13862			{
13863				// smaliParser.g:1065:8: ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor )
13864				{
13865				CommonTree root_1 = (CommonTree)adaptor.nil();
13866				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT3rc_TYPE, (retval.start), "I_STATEMENT_FORMAT3rc_TYPE"), root_1);
13867				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_TYPE.nextNode());
13868				adaptor.addChild(root_1, stream_register_range.nextTree());
13869				adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
13870				adaptor.addChild(root_0, root_1);
13871				}
13872
13873			}
13874
13875
13876			retval.tree = root_0;
13877
13878			}
13879
13880			retval.stop = input.LT(-1);
13881
13882			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13883			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13884
13885		}
13886		catch (RecognitionException re) {
13887			reportError(re);
13888			recover(input,re);
13889			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13890		}
13891		finally {
13892			// do for sure before leaving
13893		}
13894		return retval;
13895	}
13896	// $ANTLR end "insn_format3rc_type"
13897
13898
13899	public static class insn_format3rmi_method_return extends ParserRuleReturnScope {
13900		CommonTree tree;
13901		@Override
13902		public CommonTree getTree() { return tree; }
13903	};
13904
13905
13906	// $ANTLR start "insn_format3rmi_method"
13907	// smaliParser.g:1067:1: insn_format3rmi_method : INSTRUCTION_FORMAT3rmi_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA INLINE_INDEX ;
13908	public final smaliParser.insn_format3rmi_method_return insn_format3rmi_method() throws RecognitionException {
13909		smaliParser.insn_format3rmi_method_return retval = new smaliParser.insn_format3rmi_method_return();
13910		retval.start = input.LT(1);
13911
13912		CommonTree root_0 = null;
13913
13914		Token INSTRUCTION_FORMAT3rmi_METHOD457=null;
13915		Token OPEN_BRACE458=null;
13916		Token CLOSE_BRACE460=null;
13917		Token COMMA461=null;
13918		Token INLINE_INDEX462=null;
13919		ParserRuleReturnScope register_range459 =null;
13920
13921		CommonTree INSTRUCTION_FORMAT3rmi_METHOD457_tree=null;
13922		CommonTree OPEN_BRACE458_tree=null;
13923		CommonTree CLOSE_BRACE460_tree=null;
13924		CommonTree COMMA461_tree=null;
13925		CommonTree INLINE_INDEX462_tree=null;
13926
13927		try {
13928			// smaliParser.g:1068:3: ( INSTRUCTION_FORMAT3rmi_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA INLINE_INDEX )
13929			// smaliParser.g:1069:5: INSTRUCTION_FORMAT3rmi_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA INLINE_INDEX
13930			{
13931			root_0 = (CommonTree)adaptor.nil();
13932
13933
13934			INSTRUCTION_FORMAT3rmi_METHOD457=(Token)match(input,INSTRUCTION_FORMAT3rmi_METHOD,FOLLOW_INSTRUCTION_FORMAT3rmi_METHOD_in_insn_format3rmi_method5462);
13935			INSTRUCTION_FORMAT3rmi_METHOD457_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rmi_METHOD457);
13936			adaptor.addChild(root_0, INSTRUCTION_FORMAT3rmi_METHOD457_tree);
13937
13938			OPEN_BRACE458=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rmi_method5464);
13939			OPEN_BRACE458_tree = (CommonTree)adaptor.create(OPEN_BRACE458);
13940			adaptor.addChild(root_0, OPEN_BRACE458_tree);
13941
13942			pushFollow(FOLLOW_register_range_in_insn_format3rmi_method5466);
13943			register_range459=register_range();
13944			state._fsp--;
13945
13946			adaptor.addChild(root_0, register_range459.getTree());
13947
13948			CLOSE_BRACE460=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rmi_method5468);
13949			CLOSE_BRACE460_tree = (CommonTree)adaptor.create(CLOSE_BRACE460);
13950			adaptor.addChild(root_0, CLOSE_BRACE460_tree);
13951
13952			COMMA461=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rmi_method5470);
13953			COMMA461_tree = (CommonTree)adaptor.create(COMMA461);
13954			adaptor.addChild(root_0, COMMA461_tree);
13955
13956			INLINE_INDEX462=(Token)match(input,INLINE_INDEX,FOLLOW_INLINE_INDEX_in_insn_format3rmi_method5472);
13957			INLINE_INDEX462_tree = (CommonTree)adaptor.create(INLINE_INDEX462);
13958			adaptor.addChild(root_0, INLINE_INDEX462_tree);
13959
13960
13961			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rmi_METHOD457!=null?INSTRUCTION_FORMAT3rmi_METHOD457.getText():null));
13962
13963			}
13964
13965			retval.stop = input.LT(-1);
13966
13967			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
13968			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
13969
13970		}
13971		catch (RecognitionException re) {
13972			reportError(re);
13973			recover(input,re);
13974			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
13975		}
13976		finally {
13977			// do for sure before leaving
13978		}
13979		return retval;
13980	}
13981	// $ANTLR end "insn_format3rmi_method"
13982
13983
13984	public static class insn_format3rms_method_return extends ParserRuleReturnScope {
13985		CommonTree tree;
13986		@Override
13987		public CommonTree getTree() { return tree; }
13988	};
13989
13990
13991	// $ANTLR start "insn_format3rms_method"
13992	// smaliParser.g:1074:1: insn_format3rms_method : INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_INDEX ;
13993	public final smaliParser.insn_format3rms_method_return insn_format3rms_method() throws RecognitionException {
13994		smaliParser.insn_format3rms_method_return retval = new smaliParser.insn_format3rms_method_return();
13995		retval.start = input.LT(1);
13996
13997		CommonTree root_0 = null;
13998
13999		Token INSTRUCTION_FORMAT3rms_METHOD463=null;
14000		Token OPEN_BRACE464=null;
14001		Token CLOSE_BRACE466=null;
14002		Token COMMA467=null;
14003		Token VTABLE_INDEX468=null;
14004		ParserRuleReturnScope register_range465 =null;
14005
14006		CommonTree INSTRUCTION_FORMAT3rms_METHOD463_tree=null;
14007		CommonTree OPEN_BRACE464_tree=null;
14008		CommonTree CLOSE_BRACE466_tree=null;
14009		CommonTree COMMA467_tree=null;
14010		CommonTree VTABLE_INDEX468_tree=null;
14011
14012		try {
14013			// smaliParser.g:1075:3: ( INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_INDEX )
14014			// smaliParser.g:1076:5: INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_INDEX
14015			{
14016			root_0 = (CommonTree)adaptor.nil();
14017
14018
14019			INSTRUCTION_FORMAT3rms_METHOD463=(Token)match(input,INSTRUCTION_FORMAT3rms_METHOD,FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_insn_format3rms_method5493);
14020			INSTRUCTION_FORMAT3rms_METHOD463_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rms_METHOD463);
14021			adaptor.addChild(root_0, INSTRUCTION_FORMAT3rms_METHOD463_tree);
14022
14023			OPEN_BRACE464=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rms_method5495);
14024			OPEN_BRACE464_tree = (CommonTree)adaptor.create(OPEN_BRACE464);
14025			adaptor.addChild(root_0, OPEN_BRACE464_tree);
14026
14027			pushFollow(FOLLOW_register_range_in_insn_format3rms_method5497);
14028			register_range465=register_range();
14029			state._fsp--;
14030
14031			adaptor.addChild(root_0, register_range465.getTree());
14032
14033			CLOSE_BRACE466=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rms_method5499);
14034			CLOSE_BRACE466_tree = (CommonTree)adaptor.create(CLOSE_BRACE466);
14035			adaptor.addChild(root_0, CLOSE_BRACE466_tree);
14036
14037			COMMA467=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rms_method5501);
14038			COMMA467_tree = (CommonTree)adaptor.create(COMMA467);
14039			adaptor.addChild(root_0, COMMA467_tree);
14040
14041			VTABLE_INDEX468=(Token)match(input,VTABLE_INDEX,FOLLOW_VTABLE_INDEX_in_insn_format3rms_method5503);
14042			VTABLE_INDEX468_tree = (CommonTree)adaptor.create(VTABLE_INDEX468);
14043			adaptor.addChild(root_0, VTABLE_INDEX468_tree);
14044
14045
14046			      throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rms_METHOD463!=null?INSTRUCTION_FORMAT3rms_METHOD463.getText():null));
14047
14048			}
14049
14050			retval.stop = input.LT(-1);
14051
14052			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
14053			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
14054
14055		}
14056		catch (RecognitionException re) {
14057			reportError(re);
14058			recover(input,re);
14059			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
14060		}
14061		finally {
14062			// do for sure before leaving
14063		}
14064		return retval;
14065	}
14066	// $ANTLR end "insn_format3rms_method"
14067
14068
14069	public static class insn_format45cc_method_return extends ParserRuleReturnScope {
14070		CommonTree tree;
14071		@Override
14072		public CommonTree getTree() { return tree; }
14073	};
14074
14075
14076	// $ANTLR start "insn_format45cc_method"
14077	// smaliParser.g:1081:1: insn_format45cc_method : INSTRUCTION_FORMAT45cc_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference COMMA method_prototype -> ^( I_STATEMENT_FORMAT45cc_METHOD[$start, \"I_STATEMENT_FORMAT45cc_METHOD\"] INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype ) ;
14078	public final smaliParser.insn_format45cc_method_return insn_format45cc_method() throws RecognitionException {
14079		smaliParser.insn_format45cc_method_return retval = new smaliParser.insn_format45cc_method_return();
14080		retval.start = input.LT(1);
14081
14082		CommonTree root_0 = null;
14083
14084		Token INSTRUCTION_FORMAT45cc_METHOD469=null;
14085		Token OPEN_BRACE470=null;
14086		Token CLOSE_BRACE472=null;
14087		Token COMMA473=null;
14088		Token COMMA475=null;
14089		ParserRuleReturnScope register_list471 =null;
14090		ParserRuleReturnScope method_reference474 =null;
14091		ParserRuleReturnScope method_prototype476 =null;
14092
14093		CommonTree INSTRUCTION_FORMAT45cc_METHOD469_tree=null;
14094		CommonTree OPEN_BRACE470_tree=null;
14095		CommonTree CLOSE_BRACE472_tree=null;
14096		CommonTree COMMA473_tree=null;
14097		CommonTree COMMA475_tree=null;
14098		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
14099		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT45cc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT45cc_METHOD");
14100		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
14101		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
14102		RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
14103		RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
14104		RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list");
14105
14106		try {
14107			// smaliParser.g:1082:3: ( INSTRUCTION_FORMAT45cc_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference COMMA method_prototype -> ^( I_STATEMENT_FORMAT45cc_METHOD[$start, \"I_STATEMENT_FORMAT45cc_METHOD\"] INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype ) )
14108			// smaliParser.g:1083:5: INSTRUCTION_FORMAT45cc_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference COMMA method_prototype
14109			{
14110			INSTRUCTION_FORMAT45cc_METHOD469=(Token)match(input,INSTRUCTION_FORMAT45cc_METHOD,FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method5524);
14111			stream_INSTRUCTION_FORMAT45cc_METHOD.add(INSTRUCTION_FORMAT45cc_METHOD469);
14112
14113			OPEN_BRACE470=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format45cc_method5526);
14114			stream_OPEN_BRACE.add(OPEN_BRACE470);
14115
14116			pushFollow(FOLLOW_register_list_in_insn_format45cc_method5528);
14117			register_list471=register_list();
14118			state._fsp--;
14119
14120			stream_register_list.add(register_list471.getTree());
14121			CLOSE_BRACE472=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format45cc_method5530);
14122			stream_CLOSE_BRACE.add(CLOSE_BRACE472);
14123
14124			COMMA473=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format45cc_method5532);
14125			stream_COMMA.add(COMMA473);
14126
14127			pushFollow(FOLLOW_method_reference_in_insn_format45cc_method5534);
14128			method_reference474=method_reference();
14129			state._fsp--;
14130
14131			stream_method_reference.add(method_reference474.getTree());
14132			COMMA475=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format45cc_method5536);
14133			stream_COMMA.add(COMMA475);
14134
14135			pushFollow(FOLLOW_method_prototype_in_insn_format45cc_method5538);
14136			method_prototype476=method_prototype();
14137			state._fsp--;
14138
14139			stream_method_prototype.add(method_prototype476.getTree());
14140			// AST REWRITE
14141			// elements: method_reference, method_prototype, INSTRUCTION_FORMAT45cc_METHOD, register_list
14142			// token labels:
14143			// rule labels: retval
14144			// token list labels:
14145			// rule list labels:
14146			// wildcard labels:
14147			retval.tree = root_0;
14148			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
14149
14150			root_0 = (CommonTree)adaptor.nil();
14151			// 1084:5: -> ^( I_STATEMENT_FORMAT45cc_METHOD[$start, \"I_STATEMENT_FORMAT45cc_METHOD\"] INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype )
14152			{
14153				// smaliParser.g:1084:8: ^( I_STATEMENT_FORMAT45cc_METHOD[$start, \"I_STATEMENT_FORMAT45cc_METHOD\"] INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype )
14154				{
14155				CommonTree root_1 = (CommonTree)adaptor.nil();
14156				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT45cc_METHOD, (retval.start), "I_STATEMENT_FORMAT45cc_METHOD"), root_1);
14157				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT45cc_METHOD.nextNode());
14158				adaptor.addChild(root_1, stream_register_list.nextTree());
14159				adaptor.addChild(root_1, stream_method_reference.nextTree());
14160				adaptor.addChild(root_1, stream_method_prototype.nextTree());
14161				adaptor.addChild(root_0, root_1);
14162				}
14163
14164			}
14165
14166
14167			retval.tree = root_0;
14168
14169			}
14170
14171			retval.stop = input.LT(-1);
14172
14173			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
14174			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
14175
14176		}
14177		catch (RecognitionException re) {
14178			reportError(re);
14179			recover(input,re);
14180			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
14181		}
14182		finally {
14183			// do for sure before leaving
14184		}
14185		return retval;
14186	}
14187	// $ANTLR end "insn_format45cc_method"
14188
14189
14190	public static class insn_format4rcc_method_return extends ParserRuleReturnScope {
14191		CommonTree tree;
14192		@Override
14193		public CommonTree getTree() { return tree; }
14194	};
14195
14196
14197	// $ANTLR start "insn_format4rcc_method"
14198	// smaliParser.g:1086:1: insn_format4rcc_method : INSTRUCTION_FORMAT4rcc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference COMMA method_prototype -> ^( I_STATEMENT_FORMAT4rcc_METHOD[$start, \"I_STATEMENT_FORMAT4rcc_METHOD\"] INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype ) ;
14199	public final smaliParser.insn_format4rcc_method_return insn_format4rcc_method() throws RecognitionException {
14200		smaliParser.insn_format4rcc_method_return retval = new smaliParser.insn_format4rcc_method_return();
14201		retval.start = input.LT(1);
14202
14203		CommonTree root_0 = null;
14204
14205		Token INSTRUCTION_FORMAT4rcc_METHOD477=null;
14206		Token OPEN_BRACE478=null;
14207		Token CLOSE_BRACE480=null;
14208		Token COMMA481=null;
14209		Token COMMA483=null;
14210		ParserRuleReturnScope register_range479 =null;
14211		ParserRuleReturnScope method_reference482 =null;
14212		ParserRuleReturnScope method_prototype484 =null;
14213
14214		CommonTree INSTRUCTION_FORMAT4rcc_METHOD477_tree=null;
14215		CommonTree OPEN_BRACE478_tree=null;
14216		CommonTree CLOSE_BRACE480_tree=null;
14217		CommonTree COMMA481_tree=null;
14218		CommonTree COMMA483_tree=null;
14219		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
14220		RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
14221		RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
14222		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT4rcc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT4rcc_METHOD");
14223		RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
14224		RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
14225		RewriteRuleSubtreeStream stream_register_range=new RewriteRuleSubtreeStream(adaptor,"rule register_range");
14226
14227		try {
14228			// smaliParser.g:1087:3: ( INSTRUCTION_FORMAT4rcc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference COMMA method_prototype -> ^( I_STATEMENT_FORMAT4rcc_METHOD[$start, \"I_STATEMENT_FORMAT4rcc_METHOD\"] INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype ) )
14229			// smaliParser.g:1088:5: INSTRUCTION_FORMAT4rcc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference COMMA method_prototype
14230			{
14231			INSTRUCTION_FORMAT4rcc_METHOD477=(Token)match(input,INSTRUCTION_FORMAT4rcc_METHOD,FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method5572);
14232			stream_INSTRUCTION_FORMAT4rcc_METHOD.add(INSTRUCTION_FORMAT4rcc_METHOD477);
14233
14234			OPEN_BRACE478=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format4rcc_method5574);
14235			stream_OPEN_BRACE.add(OPEN_BRACE478);
14236
14237			pushFollow(FOLLOW_register_range_in_insn_format4rcc_method5576);
14238			register_range479=register_range();
14239			state._fsp--;
14240
14241			stream_register_range.add(register_range479.getTree());
14242			CLOSE_BRACE480=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format4rcc_method5578);
14243			stream_CLOSE_BRACE.add(CLOSE_BRACE480);
14244
14245			COMMA481=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format4rcc_method5580);
14246			stream_COMMA.add(COMMA481);
14247
14248			pushFollow(FOLLOW_method_reference_in_insn_format4rcc_method5582);
14249			method_reference482=method_reference();
14250			state._fsp--;
14251
14252			stream_method_reference.add(method_reference482.getTree());
14253			COMMA483=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format4rcc_method5584);
14254			stream_COMMA.add(COMMA483);
14255
14256			pushFollow(FOLLOW_method_prototype_in_insn_format4rcc_method5586);
14257			method_prototype484=method_prototype();
14258			state._fsp--;
14259
14260			stream_method_prototype.add(method_prototype484.getTree());
14261			// AST REWRITE
14262			// elements: register_range, INSTRUCTION_FORMAT4rcc_METHOD, method_reference, method_prototype
14263			// token labels:
14264			// rule labels: retval
14265			// token list labels:
14266			// rule list labels:
14267			// wildcard labels:
14268			retval.tree = root_0;
14269			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
14270
14271			root_0 = (CommonTree)adaptor.nil();
14272			// 1089:5: -> ^( I_STATEMENT_FORMAT4rcc_METHOD[$start, \"I_STATEMENT_FORMAT4rcc_METHOD\"] INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype )
14273			{
14274				// smaliParser.g:1089:8: ^( I_STATEMENT_FORMAT4rcc_METHOD[$start, \"I_STATEMENT_FORMAT4rcc_METHOD\"] INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype )
14275				{
14276				CommonTree root_1 = (CommonTree)adaptor.nil();
14277				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT4rcc_METHOD, (retval.start), "I_STATEMENT_FORMAT4rcc_METHOD"), root_1);
14278				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT4rcc_METHOD.nextNode());
14279				adaptor.addChild(root_1, stream_register_range.nextTree());
14280				adaptor.addChild(root_1, stream_method_reference.nextTree());
14281				adaptor.addChild(root_1, stream_method_prototype.nextTree());
14282				adaptor.addChild(root_0, root_1);
14283				}
14284
14285			}
14286
14287
14288			retval.tree = root_0;
14289
14290			}
14291
14292			retval.stop = input.LT(-1);
14293
14294			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
14295			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
14296
14297		}
14298		catch (RecognitionException re) {
14299			reportError(re);
14300			recover(input,re);
14301			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
14302		}
14303		finally {
14304			// do for sure before leaving
14305		}
14306		return retval;
14307	}
14308	// $ANTLR end "insn_format4rcc_method"
14309
14310
14311	public static class insn_format51l_return extends ParserRuleReturnScope {
14312		CommonTree tree;
14313		@Override
14314		public CommonTree getTree() { return tree; }
14315	};
14316
14317
14318	// $ANTLR start "insn_format51l"
14319	// smaliParser.g:1091:1: insn_format51l : INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) ;
14320	public final smaliParser.insn_format51l_return insn_format51l() throws RecognitionException {
14321		smaliParser.insn_format51l_return retval = new smaliParser.insn_format51l_return();
14322		retval.start = input.LT(1);
14323
14324		CommonTree root_0 = null;
14325
14326		Token INSTRUCTION_FORMAT51l485=null;
14327		Token REGISTER486=null;
14328		Token COMMA487=null;
14329		ParserRuleReturnScope fixed_literal488 =null;
14330
14331		CommonTree INSTRUCTION_FORMAT51l485_tree=null;
14332		CommonTree REGISTER486_tree=null;
14333		CommonTree COMMA487_tree=null;
14334		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
14335		RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
14336		RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT51l");
14337		RewriteRuleSubtreeStream stream_fixed_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_literal");
14338
14339		try {
14340			// smaliParser.g:1092:3: ( INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) )
14341			// smaliParser.g:1093:5: INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal
14342			{
14343			INSTRUCTION_FORMAT51l485=(Token)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l5620);
14344			stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l485);
14345
14346			REGISTER486=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format51l5622);
14347			stream_REGISTER.add(REGISTER486);
14348
14349			COMMA487=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format51l5624);
14350			stream_COMMA.add(COMMA487);
14351
14352			pushFollow(FOLLOW_fixed_literal_in_insn_format51l5626);
14353			fixed_literal488=fixed_literal();
14354			state._fsp--;
14355
14356			stream_fixed_literal.add(fixed_literal488.getTree());
14357			// AST REWRITE
14358			// elements: REGISTER, INSTRUCTION_FORMAT51l, fixed_literal
14359			// token labels:
14360			// rule labels: retval
14361			// token list labels:
14362			// rule list labels:
14363			// wildcard labels:
14364			retval.tree = root_0;
14365			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
14366
14367			root_0 = (CommonTree)adaptor.nil();
14368			// 1094:5: -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal )
14369			{
14370				// smaliParser.g:1094:8: ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal )
14371				{
14372				CommonTree root_1 = (CommonTree)adaptor.nil();
14373				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT51l, (retval.start), "I_STATEMENT_FORMAT51l"), root_1);
14374				adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT51l.nextNode());
14375				adaptor.addChild(root_1, stream_REGISTER.nextNode());
14376				adaptor.addChild(root_1, stream_fixed_literal.nextTree());
14377				adaptor.addChild(root_0, root_1);
14378				}
14379
14380			}
14381
14382
14383			retval.tree = root_0;
14384
14385			}
14386
14387			retval.stop = input.LT(-1);
14388
14389			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
14390			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
14391
14392		}
14393		catch (RecognitionException re) {
14394			reportError(re);
14395			recover(input,re);
14396			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
14397		}
14398		finally {
14399			// do for sure before leaving
14400		}
14401		return retval;
14402	}
14403	// $ANTLR end "insn_format51l"
14404
14405
14406	public static class insn_array_data_directive_return extends ParserRuleReturnScope {
14407		CommonTree tree;
14408		@Override
14409		public CommonTree getTree() { return tree; }
14410	};
14411
14412
14413	// $ANTLR start "insn_array_data_directive"
14414	// smaliParser.g:1096:1: insn_array_data_directive : ARRAY_DATA_DIRECTIVE parsed_integer_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) ;
14415	public final smaliParser.insn_array_data_directive_return insn_array_data_directive() throws RecognitionException {
14416		smaliParser.insn_array_data_directive_return retval = new smaliParser.insn_array_data_directive_return();
14417		retval.start = input.LT(1);
14418
14419		CommonTree root_0 = null;
14420
14421		Token ARRAY_DATA_DIRECTIVE489=null;
14422		Token END_ARRAY_DATA_DIRECTIVE492=null;
14423		ParserRuleReturnScope parsed_integer_literal490 =null;
14424		ParserRuleReturnScope fixed_literal491 =null;
14425
14426		CommonTree ARRAY_DATA_DIRECTIVE489_tree=null;
14427		CommonTree END_ARRAY_DATA_DIRECTIVE492_tree=null;
14428		RewriteRuleTokenStream stream_END_ARRAY_DATA_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_ARRAY_DATA_DIRECTIVE");
14429		RewriteRuleTokenStream stream_ARRAY_DATA_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ARRAY_DATA_DIRECTIVE");
14430		RewriteRuleSubtreeStream stream_parsed_integer_literal=new RewriteRuleSubtreeStream(adaptor,"rule parsed_integer_literal");
14431		RewriteRuleSubtreeStream stream_fixed_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_literal");
14432
14433		try {
14434			// smaliParser.g:1097:3: ( ARRAY_DATA_DIRECTIVE parsed_integer_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) )
14435			// smaliParser.g:1097:5: ARRAY_DATA_DIRECTIVE parsed_integer_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE
14436			{
14437			ARRAY_DATA_DIRECTIVE489=(Token)match(input,ARRAY_DATA_DIRECTIVE,FOLLOW_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5653);
14438			stream_ARRAY_DATA_DIRECTIVE.add(ARRAY_DATA_DIRECTIVE489);
14439
14440			pushFollow(FOLLOW_parsed_integer_literal_in_insn_array_data_directive5659);
14441			parsed_integer_literal490=parsed_integer_literal();
14442			state._fsp--;
14443
14444			stream_parsed_integer_literal.add(parsed_integer_literal490.getTree());
14445
14446			        int elementWidth = (parsed_integer_literal490!=null?((smaliParser.parsed_integer_literal_return)parsed_integer_literal490).value:0);
14447			        if (elementWidth != 4 && elementWidth != 8 && elementWidth != 1 && elementWidth != 2) {
14448			            throw new SemanticException(input, (retval.start), "Invalid element width: %d. Must be 1, 2, 4 or 8", elementWidth);
14449			        }
14450
14451			// smaliParser.g:1105:5: ( fixed_literal )*
14452			loop52:
14453			while (true) {
14454				int alt52=2;
14455				int LA52_0 = input.LA(1);
14456				if ( ((LA52_0 >= BOOL_LITERAL && LA52_0 <= BYTE_LITERAL)||LA52_0==CHAR_LITERAL||(LA52_0 >= DOUBLE_LITERAL && LA52_0 <= DOUBLE_LITERAL_OR_ID)||(LA52_0 >= FLOAT_LITERAL && LA52_0 <= FLOAT_LITERAL_OR_ID)||LA52_0==LONG_LITERAL||LA52_0==NEGATIVE_INTEGER_LITERAL||LA52_0==POSITIVE_INTEGER_LITERAL||LA52_0==SHORT_LITERAL) ) {
14457					alt52=1;
14458				}
14459
14460				switch (alt52) {
14461				case 1 :
14462					// smaliParser.g:1105:5: fixed_literal
14463					{
14464					pushFollow(FOLLOW_fixed_literal_in_insn_array_data_directive5671);
14465					fixed_literal491=fixed_literal();
14466					state._fsp--;
14467
14468					stream_fixed_literal.add(fixed_literal491.getTree());
14469					}
14470					break;
14471
14472				default :
14473					break loop52;
14474				}
14475			}
14476
14477			END_ARRAY_DATA_DIRECTIVE492=(Token)match(input,END_ARRAY_DATA_DIRECTIVE,FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5674);
14478			stream_END_ARRAY_DATA_DIRECTIVE.add(END_ARRAY_DATA_DIRECTIVE492);
14479
14480			// AST REWRITE
14481			// elements: parsed_integer_literal, fixed_literal
14482			// token labels:
14483			// rule labels: retval
14484			// token list labels:
14485			// rule list labels:
14486			// wildcard labels:
14487			retval.tree = root_0;
14488			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
14489
14490			root_0 = (CommonTree)adaptor.nil();
14491			// 1107:5: -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) )
14492			{
14493				// smaliParser.g:1107:8: ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) )
14494				{
14495				CommonTree root_1 = (CommonTree)adaptor.nil();
14496				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_ARRAY_DATA, (retval.start), "I_STATEMENT_ARRAY_DATA"), root_1);
14497				// smaliParser.g:1107:67: ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal )
14498				{
14499				CommonTree root_2 = (CommonTree)adaptor.nil();
14500				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENT_SIZE, "I_ARRAY_ELEMENT_SIZE"), root_2);
14501				adaptor.addChild(root_2, stream_parsed_integer_literal.nextTree());
14502				adaptor.addChild(root_1, root_2);
14503				}
14504
14505				// smaliParser.g:1108:8: ^( I_ARRAY_ELEMENTS ( fixed_literal )* )
14506				{
14507				CommonTree root_2 = (CommonTree)adaptor.nil();
14508				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENTS, "I_ARRAY_ELEMENTS"), root_2);
14509				// smaliParser.g:1108:27: ( fixed_literal )*
14510				while ( stream_fixed_literal.hasNext() ) {
14511					adaptor.addChild(root_2, stream_fixed_literal.nextTree());
14512				}
14513				stream_fixed_literal.reset();
14514
14515				adaptor.addChild(root_1, root_2);
14516				}
14517
14518				adaptor.addChild(root_0, root_1);
14519				}
14520
14521			}
14522
14523
14524			retval.tree = root_0;
14525
14526			}
14527
14528			retval.stop = input.LT(-1);
14529
14530			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
14531			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
14532
14533		}
14534		catch (RecognitionException re) {
14535			reportError(re);
14536			recover(input,re);
14537			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
14538		}
14539		finally {
14540			// do for sure before leaving
14541		}
14542		return retval;
14543	}
14544	// $ANTLR end "insn_array_data_directive"
14545
14546
14547	public static class insn_packed_switch_directive_return extends ParserRuleReturnScope {
14548		CommonTree tree;
14549		@Override
14550		public CommonTree getTree() { return tree; }
14551	};
14552
14553
14554	// $ANTLR start "insn_packed_switch_directive"
14555	// smaliParser.g:1110:1: insn_packed_switch_directive : PACKED_SWITCH_DIRECTIVE fixed_32bit_literal ( label_ref )* END_PACKED_SWITCH_DIRECTIVE -> ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) ) ;
14556	public final smaliParser.insn_packed_switch_directive_return insn_packed_switch_directive() throws RecognitionException {
14557		smaliParser.insn_packed_switch_directive_return retval = new smaliParser.insn_packed_switch_directive_return();
14558		retval.start = input.LT(1);
14559
14560		CommonTree root_0 = null;
14561
14562		Token PACKED_SWITCH_DIRECTIVE493=null;
14563		Token END_PACKED_SWITCH_DIRECTIVE496=null;
14564		ParserRuleReturnScope fixed_32bit_literal494 =null;
14565		ParserRuleReturnScope label_ref495 =null;
14566
14567		CommonTree PACKED_SWITCH_DIRECTIVE493_tree=null;
14568		CommonTree END_PACKED_SWITCH_DIRECTIVE496_tree=null;
14569		RewriteRuleTokenStream stream_END_PACKED_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_PACKED_SWITCH_DIRECTIVE");
14570		RewriteRuleTokenStream stream_PACKED_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PACKED_SWITCH_DIRECTIVE");
14571		RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
14572		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
14573
14574		try {
14575			// smaliParser.g:1111:5: ( PACKED_SWITCH_DIRECTIVE fixed_32bit_literal ( label_ref )* END_PACKED_SWITCH_DIRECTIVE -> ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) ) )
14576			// smaliParser.g:1111:9: PACKED_SWITCH_DIRECTIVE fixed_32bit_literal ( label_ref )* END_PACKED_SWITCH_DIRECTIVE
14577			{
14578			PACKED_SWITCH_DIRECTIVE493=(Token)match(input,PACKED_SWITCH_DIRECTIVE,FOLLOW_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5720);
14579			stream_PACKED_SWITCH_DIRECTIVE.add(PACKED_SWITCH_DIRECTIVE493);
14580
14581			pushFollow(FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive5726);
14582			fixed_32bit_literal494=fixed_32bit_literal();
14583			state._fsp--;
14584
14585			stream_fixed_32bit_literal.add(fixed_32bit_literal494.getTree());
14586			// smaliParser.g:1113:5: ( label_ref )*
14587			loop53:
14588			while (true) {
14589				int alt53=2;
14590				int LA53_0 = input.LA(1);
14591				if ( (LA53_0==COLON) ) {
14592					alt53=1;
14593				}
14594
14595				switch (alt53) {
14596				case 1 :
14597					// smaliParser.g:1113:5: label_ref
14598					{
14599					pushFollow(FOLLOW_label_ref_in_insn_packed_switch_directive5732);
14600					label_ref495=label_ref();
14601					state._fsp--;
14602
14603					stream_label_ref.add(label_ref495.getTree());
14604					}
14605					break;
14606
14607				default :
14608					break loop53;
14609				}
14610			}
14611
14612			END_PACKED_SWITCH_DIRECTIVE496=(Token)match(input,END_PACKED_SWITCH_DIRECTIVE,FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5739);
14613			stream_END_PACKED_SWITCH_DIRECTIVE.add(END_PACKED_SWITCH_DIRECTIVE496);
14614
14615			// AST REWRITE
14616			// elements: fixed_32bit_literal, label_ref
14617			// token labels:
14618			// rule labels: retval
14619			// token list labels:
14620			// rule list labels:
14621			// wildcard labels:
14622			retval.tree = root_0;
14623			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
14624
14625			root_0 = (CommonTree)adaptor.nil();
14626			// 1115:5: -> ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) )
14627			{
14628				// smaliParser.g:1115:8: ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) )
14629				{
14630				CommonTree root_1 = (CommonTree)adaptor.nil();
14631				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_PACKED_SWITCH, (retval.start), "I_STATEMENT_PACKED_SWITCH"), root_1);
14632				// smaliParser.g:1116:10: ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal )
14633				{
14634				CommonTree root_2 = (CommonTree)adaptor.nil();
14635				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_START_KEY, (retval.start), "I_PACKED_SWITCH_START_KEY"), root_2);
14636				adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree());
14637				adaptor.addChild(root_1, root_2);
14638				}
14639
14640				// smaliParser.g:1117:10: ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* )
14641				{
14642				CommonTree root_2 = (CommonTree)adaptor.nil();
14643				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_ELEMENTS, (retval.start), "I_PACKED_SWITCH_ELEMENTS"), root_2);
14644				// smaliParser.g:1118:11: ( label_ref )*
14645				while ( stream_label_ref.hasNext() ) {
14646					adaptor.addChild(root_2, stream_label_ref.nextTree());
14647				}
14648				stream_label_ref.reset();
14649
14650				adaptor.addChild(root_1, root_2);
14651				}
14652
14653				adaptor.addChild(root_0, root_1);
14654				}
14655
14656			}
14657
14658
14659			retval.tree = root_0;
14660
14661			}
14662
14663			retval.stop = input.LT(-1);
14664
14665			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
14666			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
14667
14668		}
14669		catch (RecognitionException re) {
14670			reportError(re);
14671			recover(input,re);
14672			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
14673		}
14674		finally {
14675			// do for sure before leaving
14676		}
14677		return retval;
14678	}
14679	// $ANTLR end "insn_packed_switch_directive"
14680
14681
14682	public static class insn_sparse_switch_directive_return extends ParserRuleReturnScope {
14683		CommonTree tree;
14684		@Override
14685		public CommonTree getTree() { return tree; }
14686	};
14687
14688
14689	// $ANTLR start "insn_sparse_switch_directive"
14690	// smaliParser.g:1121:1: insn_sparse_switch_directive : SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW label_ref )* END_SPARSE_SWITCH_DIRECTIVE -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) ) ;
14691	public final smaliParser.insn_sparse_switch_directive_return insn_sparse_switch_directive() throws RecognitionException {
14692		smaliParser.insn_sparse_switch_directive_return retval = new smaliParser.insn_sparse_switch_directive_return();
14693		retval.start = input.LT(1);
14694
14695		CommonTree root_0 = null;
14696
14697		Token SPARSE_SWITCH_DIRECTIVE497=null;
14698		Token ARROW499=null;
14699		Token END_SPARSE_SWITCH_DIRECTIVE501=null;
14700		ParserRuleReturnScope fixed_32bit_literal498 =null;
14701		ParserRuleReturnScope label_ref500 =null;
14702
14703		CommonTree SPARSE_SWITCH_DIRECTIVE497_tree=null;
14704		CommonTree ARROW499_tree=null;
14705		CommonTree END_SPARSE_SWITCH_DIRECTIVE501_tree=null;
14706		RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
14707		RewriteRuleTokenStream stream_SPARSE_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SPARSE_SWITCH_DIRECTIVE");
14708		RewriteRuleTokenStream stream_END_SPARSE_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_SPARSE_SWITCH_DIRECTIVE");
14709		RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
14710		RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
14711
14712		try {
14713			// smaliParser.g:1122:3: ( SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW label_ref )* END_SPARSE_SWITCH_DIRECTIVE -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) ) )
14714			// smaliParser.g:1122:7: SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW label_ref )* END_SPARSE_SWITCH_DIRECTIVE
14715			{
14716			SPARSE_SWITCH_DIRECTIVE497=(Token)match(input,SPARSE_SWITCH_DIRECTIVE,FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5813);
14717			stream_SPARSE_SWITCH_DIRECTIVE.add(SPARSE_SWITCH_DIRECTIVE497);
14718
14719			// smaliParser.g:1123:5: ( fixed_32bit_literal ARROW label_ref )*
14720			loop54:
14721			while (true) {
14722				int alt54=2;
14723				int LA54_0 = input.LA(1);
14724				if ( ((LA54_0 >= BOOL_LITERAL && LA54_0 <= BYTE_LITERAL)||LA54_0==CHAR_LITERAL||(LA54_0 >= FLOAT_LITERAL && LA54_0 <= FLOAT_LITERAL_OR_ID)||LA54_0==LONG_LITERAL||LA54_0==NEGATIVE_INTEGER_LITERAL||LA54_0==POSITIVE_INTEGER_LITERAL||LA54_0==SHORT_LITERAL) ) {
14725					alt54=1;
14726				}
14727
14728				switch (alt54) {
14729				case 1 :
14730					// smaliParser.g:1123:6: fixed_32bit_literal ARROW label_ref
14731					{
14732					pushFollow(FOLLOW_fixed_32bit_literal_in_insn_sparse_switch_directive5820);
14733					fixed_32bit_literal498=fixed_32bit_literal();
14734					state._fsp--;
14735
14736					stream_fixed_32bit_literal.add(fixed_32bit_literal498.getTree());
14737					ARROW499=(Token)match(input,ARROW,FOLLOW_ARROW_in_insn_sparse_switch_directive5822);
14738					stream_ARROW.add(ARROW499);
14739
14740					pushFollow(FOLLOW_label_ref_in_insn_sparse_switch_directive5824);
14741					label_ref500=label_ref();
14742					state._fsp--;
14743
14744					stream_label_ref.add(label_ref500.getTree());
14745					}
14746					break;
14747
14748				default :
14749					break loop54;
14750				}
14751			}
14752
14753			END_SPARSE_SWITCH_DIRECTIVE501=(Token)match(input,END_SPARSE_SWITCH_DIRECTIVE,FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5832);
14754			stream_END_SPARSE_SWITCH_DIRECTIVE.add(END_SPARSE_SWITCH_DIRECTIVE501);
14755
14756			// AST REWRITE
14757			// elements: fixed_32bit_literal, label_ref
14758			// token labels:
14759			// rule labels: retval
14760			// token list labels:
14761			// rule list labels:
14762			// wildcard labels:
14763			retval.tree = root_0;
14764			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
14765
14766			root_0 = (CommonTree)adaptor.nil();
14767			// 1125:5: -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) )
14768			{
14769				// smaliParser.g:1125:8: ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) )
14770				{
14771				CommonTree root_1 = (CommonTree)adaptor.nil();
14772				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_SPARSE_SWITCH, (retval.start), "I_STATEMENT_SPARSE_SWITCH"), root_1);
14773				// smaliParser.g:1126:8: ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* )
14774				{
14775				CommonTree root_2 = (CommonTree)adaptor.nil();
14776				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SPARSE_SWITCH_ELEMENTS, (retval.start), "I_SPARSE_SWITCH_ELEMENTS"), root_2);
14777				// smaliParser.g:1126:71: ( fixed_32bit_literal label_ref )*
14778				while ( stream_fixed_32bit_literal.hasNext()||stream_label_ref.hasNext() ) {
14779					adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree());
14780					adaptor.addChild(root_2, stream_label_ref.nextTree());
14781				}
14782				stream_fixed_32bit_literal.reset();
14783				stream_label_ref.reset();
14784
14785				adaptor.addChild(root_1, root_2);
14786				}
14787
14788				adaptor.addChild(root_0, root_1);
14789				}
14790
14791			}
14792
14793
14794			retval.tree = root_0;
14795
14796			}
14797
14798			retval.stop = input.LT(-1);
14799
14800			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
14801			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
14802
14803		}
14804		catch (RecognitionException re) {
14805			reportError(re);
14806			recover(input,re);
14807			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
14808		}
14809		finally {
14810			// do for sure before leaving
14811		}
14812		return retval;
14813	}
14814	// $ANTLR end "insn_sparse_switch_directive"
14815
14816	// Delegated rules
14817
14818
14819	protected DFA30 dfa30 = new DFA30(this);
14820	protected DFA38 dfa38 = new DFA38(this);
14821	protected DFA40 dfa40 = new DFA40(this);
14822	static final String DFA30_eotS =
14823		"\55\uffff";
14824	static final String DFA30_eofS =
14825		"\55\uffff";
14826	static final String DFA30_minS =
14827		"\1\4\52\23\2\uffff";
14828	static final String DFA30_maxS =
14829		"\1\u00c6\12\u00b4\1\u00b7\37\u00b4\2\uffff";
14830	static final String DFA30_acceptS =
14831		"\53\uffff\1\1\1\2";
14832	static final String DFA30_specialS =
14833		"\55\uffff}>";
14834	static final String[] DFA30_transitionS = {
14835			"\1\2\1\uffff\1\16\3\uffff\1\10\14\uffff\1\7\17\uffff\1\6\2\uffff\1\17"+
14836			"\1\20\1\21\1\uffff\1\22\1\uffff\1\23\2\uffff\1\24\1\25\1\26\1\27\3\uffff"+
14837			"\1\30\1\uffff\1\31\1\32\1\33\1\34\1\uffff\1\35\1\36\1\uffff\1\37\3\uffff"+
14838			"\1\40\1\41\1\uffff\1\42\1\43\1\44\1\45\1\46\5\uffff\1\47\1\50\1\51\127"+
14839			"\uffff\1\52\1\uffff\1\5\1\11\4\uffff\1\13\1\4\1\14\1\uffff\1\12\3\uffff"+
14840			"\1\1\5\uffff\1\3\1\15",
14841			"\1\53\u00a0\uffff\1\54",
14842			"\1\53\u00a0\uffff\1\54",
14843			"\1\53\u00a0\uffff\1\54",
14844			"\1\53\u00a0\uffff\1\54",
14845			"\1\53\u00a0\uffff\1\54",
14846			"\1\53\u00a0\uffff\1\54",
14847			"\1\53\u00a0\uffff\1\54",
14848			"\1\53\u00a0\uffff\1\54",
14849			"\1\53\u00a0\uffff\1\54",
14850			"\1\53\u00a0\uffff\1\54",
14851			"\1\53\u00a0\uffff\1\54\2\uffff\1\13",
14852			"\1\53\u00a0\uffff\1\54",
14853			"\1\53\u00a0\uffff\1\54",
14854			"\1\53\u00a0\uffff\1\54",
14855			"\1\53\u00a0\uffff\1\54",
14856			"\1\53\u00a0\uffff\1\54",
14857			"\1\53\u00a0\uffff\1\54",
14858			"\1\53\u00a0\uffff\1\54",
14859			"\1\53\u00a0\uffff\1\54",
14860			"\1\53\u00a0\uffff\1\54",
14861			"\1\53\u00a0\uffff\1\54",
14862			"\1\53\u00a0\uffff\1\54",
14863			"\1\53\u00a0\uffff\1\54",
14864			"\1\53\u00a0\uffff\1\54",
14865			"\1\53\u00a0\uffff\1\54",
14866			"\1\53\u00a0\uffff\1\54",
14867			"\1\53\u00a0\uffff\1\54",
14868			"\1\53\u00a0\uffff\1\54",
14869			"\1\53\u00a0\uffff\1\54",
14870			"\1\53\u00a0\uffff\1\54",
14871			"\1\53\u00a0\uffff\1\54",
14872			"\1\53\u00a0\uffff\1\54",
14873			"\1\53\u00a0\uffff\1\54",
14874			"\1\53\u00a0\uffff\1\54",
14875			"\1\53\u00a0\uffff\1\54",
14876			"\1\53\u00a0\uffff\1\54",
14877			"\1\53\u00a0\uffff\1\54",
14878			"\1\53\u00a0\uffff\1\54",
14879			"\1\53\u00a0\uffff\1\54",
14880			"\1\53\u00a0\uffff\1\54",
14881			"\1\53\u00a0\uffff\1\54",
14882			"\1\53\u00a0\uffff\1\54",
14883			"",
14884			""
14885	};
14886
14887	static final short[] DFA30_eot = DFA.unpackEncodedString(DFA30_eotS);
14888	static final short[] DFA30_eof = DFA.unpackEncodedString(DFA30_eofS);
14889	static final char[] DFA30_min = DFA.unpackEncodedStringToUnsignedChars(DFA30_minS);
14890	static final char[] DFA30_max = DFA.unpackEncodedStringToUnsignedChars(DFA30_maxS);
14891	static final short[] DFA30_accept = DFA.unpackEncodedString(DFA30_acceptS);
14892	static final short[] DFA30_special = DFA.unpackEncodedString(DFA30_specialS);
14893	static final short[][] DFA30_transition;
14894
14895	static {
14896		int numStates = DFA30_transitionS.length;
14897		DFA30_transition = new short[numStates][];
14898		for (int i=0; i<numStates; i++) {
14899			DFA30_transition[i] = DFA.unpackEncodedString(DFA30_transitionS[i]);
14900		}
14901	}
14902
14903	protected class DFA30 extends DFA {
14904
14905		public DFA30(BaseRecognizer recognizer) {
14906			this.recognizer = recognizer;
14907			this.decisionNumber = 30;
14908			this.eot = DFA30_eot;
14909			this.eof = DFA30_eof;
14910			this.min = DFA30_min;
14911			this.max = DFA30_max;
14912			this.accept = DFA30_accept;
14913			this.special = DFA30_special;
14914			this.transition = DFA30_transition;
14915		}
14916		@Override
14917		public String getDescription() {
14918			return "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 ) )";
14919		}
14920	}
14921
14922	static final String DFA38_eotS =
14923		"\62\uffff";
14924	static final String DFA38_eofS =
14925		"\62\uffff";
14926	static final String DFA38_minS =
14927		"\1\4\1\5\1\17\52\23\1\uffff\1\4\1\11\2\uffff";
14928	static final String DFA38_maxS =
14929		"\1\u00c6\1\u00c1\1\u00b9\12\u00b4\1\u00b7\37\u00b4\1\uffff\1\u00c6\1\11"+
14930		"\2\uffff";
14931	static final String DFA38_acceptS =
14932		"\55\uffff\1\1\2\uffff\1\2\1\3";
14933	static final String DFA38_specialS =
14934		"\62\uffff}>";
14935	static final String[] DFA38_transitionS = {
14936			"\1\4\1\uffff\1\20\1\uffff\1\2\1\uffff\1\12\4\uffff\1\1\7\uffff\1\11\17"+
14937			"\uffff\1\10\2\uffff\1\21\1\22\1\23\1\uffff\1\24\1\uffff\1\25\2\uffff"+
14938			"\1\26\1\27\1\30\1\31\3\uffff\1\32\1\uffff\1\33\1\34\1\35\1\36\1\uffff"+
14939			"\1\37\1\40\1\uffff\1\41\3\uffff\1\42\1\43\1\uffff\1\44\1\45\1\46\1\47"+
14940			"\1\50\5\uffff\1\51\1\52\1\53\127\uffff\1\54\1\uffff\1\7\1\13\4\uffff"+
14941			"\1\15\1\6\1\16\1\uffff\1\14\3\uffff\1\3\5\uffff\1\5\1\17",
14942			"\1\55\1\uffff\1\55\1\uffff\1\56\2\uffff\2\55\5\uffff\1\55\7\uffff\2"+
14943			"\55\5\uffff\1\55\7\uffff\56\55\123\uffff\3\55\7\uffff\2\55\3\uffff\1"+
14944			"\55\1\uffff\2\55\2\uffff\2\55",
14945			"\1\57\u00a9\uffff\1\57",
14946			"\1\60\u00a0\uffff\1\61",
14947			"\1\60\u00a0\uffff\1\61",
14948			"\1\60\u00a0\uffff\1\61",
14949			"\1\60\u00a0\uffff\1\61",
14950			"\1\60\u00a0\uffff\1\61",
14951			"\1\60\u00a0\uffff\1\61",
14952			"\1\60\u00a0\uffff\1\61",
14953			"\1\60\u00a0\uffff\1\61",
14954			"\1\60\u00a0\uffff\1\61",
14955			"\1\60\u00a0\uffff\1\61",
14956			"\1\60\u00a0\uffff\1\61\2\uffff\1\15",
14957			"\1\60\u00a0\uffff\1\61",
14958			"\1\60\u00a0\uffff\1\61",
14959			"\1\60\u00a0\uffff\1\61",
14960			"\1\60\u00a0\uffff\1\61",
14961			"\1\60\u00a0\uffff\1\61",
14962			"\1\60\u00a0\uffff\1\61",
14963			"\1\60\u00a0\uffff\1\61",
14964			"\1\60\u00a0\uffff\1\61",
14965			"\1\60\u00a0\uffff\1\61",
14966			"\1\60\u00a0\uffff\1\61",
14967			"\1\60\u00a0\uffff\1\61",
14968			"\1\60\u00a0\uffff\1\61",
14969			"\1\60\u00a0\uffff\1\61",
14970			"\1\60\u00a0\uffff\1\61",
14971			"\1\60\u00a0\uffff\1\61",
14972			"\1\60\u00a0\uffff\1\61",
14973			"\1\60\u00a0\uffff\1\61",
14974			"\1\60\u00a0\uffff\1\61",
14975			"\1\60\u00a0\uffff\1\61",
14976			"\1\60\u00a0\uffff\1\61",
14977			"\1\60\u00a0\uffff\1\61",
14978			"\1\60\u00a0\uffff\1\61",
14979			"\1\60\u00a0\uffff\1\61",
14980			"\1\60\u00a0\uffff\1\61",
14981			"\1\60\u00a0\uffff\1\61",
14982			"\1\60\u00a0\uffff\1\61",
14983			"\1\60\u00a0\uffff\1\61",
14984			"\1\60\u00a0\uffff\1\61",
14985			"\1\60\u00a0\uffff\1\61",
14986			"\1\60\u00a0\uffff\1\61",
14987			"\1\60\u00a0\uffff\1\61",
14988			"",
14989			"\1\4\1\uffff\1\20\3\uffff\1\12\14\uffff\1\11\17\uffff\1\10\2\uffff\1"+
14990			"\21\1\22\1\23\1\uffff\1\24\1\uffff\1\25\2\uffff\1\26\1\27\1\30\1\31\3"+
14991			"\uffff\1\32\1\uffff\1\33\1\34\1\35\1\36\1\uffff\1\37\1\40\1\uffff\1\41"+
14992			"\3\uffff\1\42\1\43\1\uffff\1\44\1\45\1\46\1\47\1\50\5\uffff\1\51\1\52"+
14993			"\1\53\127\uffff\1\54\1\uffff\1\7\1\13\4\uffff\1\15\1\6\1\16\1\uffff\1"+
14994			"\14\3\uffff\1\3\5\uffff\1\5\1\17",
14995			"\1\56",
14996			"",
14997			""
14998	};
14999
15000	static final short[] DFA38_eot = DFA.unpackEncodedString(DFA38_eotS);
15001	static final short[] DFA38_eof = DFA.unpackEncodedString(DFA38_eofS);
15002	static final char[] DFA38_min = DFA.unpackEncodedStringToUnsignedChars(DFA38_minS);
15003	static final char[] DFA38_max = DFA.unpackEncodedStringToUnsignedChars(DFA38_maxS);
15004	static final short[] DFA38_accept = DFA.unpackEncodedString(DFA38_acceptS);
15005	static final short[] DFA38_special = DFA.unpackEncodedString(DFA38_specialS);
15006	static final short[][] DFA38_transition;
15007
15008	static {
15009		int numStates = DFA38_transitionS.length;
15010		DFA38_transition = new short[numStates][];
15011		for (int i=0; i<numStates; i++) {
15012			DFA38_transition[i] = DFA.unpackEncodedString(DFA38_transitionS[i]);
15013		}
15014	}
15015
15016	protected class DFA38 extends DFA {
15017
15018		public DFA38(BaseRecognizer recognizer) {
15019			this.recognizer = recognizer;
15020			this.decisionNumber = 38;
15021			this.eot = DFA38_eot;
15022			this.eof = DFA38_eof;
15023			this.min = DFA38_min;
15024			this.max = DFA38_max;
15025			this.accept = DFA38_accept;
15026			this.special = DFA38_special;
15027			this.transition = DFA38_transition;
15028		}
15029		@Override
15030		public String getDescription() {
15031			return "723:1: verification_error_reference : ( CLASS_DESCRIPTOR | field_reference | method_reference );";
15032		}
15033	}
15034
15035	static final String DFA40_eotS =
15036		"\103\uffff";
15037	static final String DFA40_eofS =
15038		"\103\uffff";
15039	static final String DFA40_minS =
15040		"\1\5\100\uffff\1\0\1\uffff";
15041	static final String DFA40_maxS =
15042		"\1\u00c1\100\uffff\1\0\1\uffff";
15043	static final String DFA40_acceptS =
15044		"\1\uffff\1\2\100\uffff\1\1";
15045	static final String DFA40_specialS =
15046		"\101\uffff\1\0\1\uffff}>";
15047	static final String[] DFA40_transitionS = {
15048			"\1\101\1\uffff\1\1\4\uffff\2\1\5\uffff\1\1\7\uffff\2\1\1\uffff\1\1\3"+
15049			"\uffff\1\1\7\uffff\56\1\123\uffff\3\1\7\uffff\2\1\3\uffff\1\1\1\uffff"+
15050			"\2\1\2\uffff\2\1",
15051			"",
15052			"",
15053			"",
15054			"",
15055			"",
15056			"",
15057			"",
15058			"",
15059			"",
15060			"",
15061			"",
15062			"",
15063			"",
15064			"",
15065			"",
15066			"",
15067			"",
15068			"",
15069			"",
15070			"",
15071			"",
15072			"",
15073			"",
15074			"",
15075			"",
15076			"",
15077			"",
15078			"",
15079			"",
15080			"",
15081			"",
15082			"",
15083			"",
15084			"",
15085			"",
15086			"",
15087			"",
15088			"",
15089			"",
15090			"",
15091			"",
15092			"",
15093			"",
15094			"",
15095			"",
15096			"",
15097			"",
15098			"",
15099			"",
15100			"",
15101			"",
15102			"",
15103			"",
15104			"",
15105			"",
15106			"",
15107			"",
15108			"",
15109			"",
15110			"",
15111			"",
15112			"",
15113			"",
15114			"",
15115			"\1\uffff",
15116			""
15117	};
15118
15119	static final short[] DFA40_eot = DFA.unpackEncodedString(DFA40_eotS);
15120	static final short[] DFA40_eof = DFA.unpackEncodedString(DFA40_eofS);
15121	static final char[] DFA40_min = DFA.unpackEncodedStringToUnsignedChars(DFA40_minS);
15122	static final char[] DFA40_max = DFA.unpackEncodedStringToUnsignedChars(DFA40_maxS);
15123	static final short[] DFA40_accept = DFA.unpackEncodedString(DFA40_acceptS);
15124	static final short[] DFA40_special = DFA.unpackEncodedString(DFA40_specialS);
15125	static final short[][] DFA40_transition;
15126
15127	static {
15128		int numStates = DFA40_transitionS.length;
15129		DFA40_transition = new short[numStates][];
15130		for (int i=0; i<numStates; i++) {
15131			DFA40_transition[i] = DFA.unpackEncodedString(DFA40_transitionS[i]);
15132		}
15133	}
15134
15135	protected class DFA40 extends DFA {
15136
15137		public DFA40(BaseRecognizer recognizer) {
15138			this.recognizer = recognizer;
15139			this.decisionNumber = 40;
15140			this.eot = DFA40_eot;
15141			this.eof = DFA40_eof;
15142			this.min = DFA40_min;
15143			this.max = DFA40_max;
15144			this.accept = DFA40_accept;
15145			this.special = DFA40_special;
15146			this.transition = DFA40_transition;
15147		}
15148		@Override
15149		public String getDescription() {
15150			return "()* loopback of 741:5: ({...}? annotation )*";
15151		}
15152		@Override
15153		public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
15154			TokenStream input = (TokenStream)_input;
15155			int _s = s;
15156			switch ( s ) {
15157					case 0 :
15158						int LA40_65 = input.LA(1);
15159
15160						int index40_65 = input.index();
15161						input.rewind();
15162						s = -1;
15163						if ( ((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {s = 66;}
15164						else if ( (true) ) {s = 1;}
15165
15166						input.seek(index40_65);
15167						if ( s>=0 ) return s;
15168						break;
15169			}
15170			NoViableAltException nvae =
15171				new NoViableAltException(getDescription(), 40, _s, input);
15172			error(nvae);
15173			throw nvae;
15174		}
15175	}
15176
15177	public static final BitSet FOLLOW_class_spec_in_smali_file1075 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
15178	public static final BitSet FOLLOW_super_spec_in_smali_file1086 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
15179	public static final BitSet FOLLOW_implements_spec_in_smali_file1094 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
15180	public static final BitSet FOLLOW_source_spec_in_smali_file1103 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
15181	public static final BitSet FOLLOW_method_in_smali_file1111 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
15182	public static final BitSet FOLLOW_field_in_smali_file1117 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
15183	public static final BitSet FOLLOW_annotation_in_smali_file1123 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
15184	public static final BitSet FOLLOW_EOF_in_smali_file1134 = new BitSet(new long[]{0x0000000000000002L});
15185	public static final BitSet FOLLOW_CLASS_DIRECTIVE_in_class_spec1221 = new BitSet(new long[]{0x0000000000008010L});
15186	public static final BitSet FOLLOW_access_list_in_class_spec1223 = new BitSet(new long[]{0x0000000000008000L});
15187	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_class_spec1225 = new BitSet(new long[]{0x0000000000000002L});
15188	public static final BitSet FOLLOW_SUPER_DIRECTIVE_in_super_spec1243 = new BitSet(new long[]{0x0000000000008000L});
15189	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_super_spec1245 = new BitSet(new long[]{0x0000000000000002L});
15190	public static final BitSet FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec1264 = new BitSet(new long[]{0x0000000000008000L});
15191	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_implements_spec1266 = new BitSet(new long[]{0x0000000000000002L});
15192	public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_spec1285 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
15193	public static final BitSet FOLLOW_STRING_LITERAL_in_source_spec1287 = new BitSet(new long[]{0x0000000000000002L});
15194	public static final BitSet FOLLOW_ACCESS_SPEC_in_access_list1306 = new BitSet(new long[]{0x0000000000000012L});
15195	public static final BitSet FOLLOW_FIELD_DIRECTIVE_in_field1337 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15196	public static final BitSet FOLLOW_access_list_in_field1339 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15197	public static final BitSet FOLLOW_member_name_in_field1341 = new BitSet(new long[]{0x0000000000080000L});
15198	public static final BitSet FOLLOW_COLON_in_field1343 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
15199	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field1345 = new BitSet(new long[]{0x0000000804000022L});
15200	public static final BitSet FOLLOW_EQUAL_in_field1348 = new BitSet(new long[]{0xF4795CC200C0CD50L,0x0000000000E0FB16L,0xCB8EC00000000000L,0x000000000000006CL});
15201	public static final BitSet FOLLOW_literal_in_field1350 = new BitSet(new long[]{0x0000000004000022L});
15202	public static final BitSet FOLLOW_annotation_in_field1363 = new BitSet(new long[]{0x0000000004000022L});
15203	public static final BitSet FOLLOW_END_FIELD_DIRECTIVE_in_field1377 = new BitSet(new long[]{0x0000000000000002L});
15204	public static final BitSet FOLLOW_METHOD_DIRECTIVE_in_method1488 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15205	public static final BitSet FOLLOW_access_list_in_method1490 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15206	public static final BitSet FOLLOW_member_name_in_method1492 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
15207	public static final BitSet FOLLOW_method_prototype_in_method1494 = new BitSet(new long[]{0xFFFFFC04180830A0L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
15208	public static final BitSet FOLLOW_statements_and_directives_in_method1496 = new BitSet(new long[]{0x0000000010000000L});
15209	public static final BitSet FOLLOW_END_METHOD_DIRECTIVE_in_method1502 = new BitSet(new long[]{0x0000000000000002L});
15210	public static final BitSet FOLLOW_ordered_method_item_in_statements_and_directives1547 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
15211	public static final BitSet FOLLOW_registers_directive_in_statements_and_directives1555 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
15212	public static final BitSet FOLLOW_catch_directive_in_statements_and_directives1563 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
15213	public static final BitSet FOLLOW_catchall_directive_in_statements_and_directives1571 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
15214	public static final BitSet FOLLOW_parameter_directive_in_statements_and_directives1579 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
15215	public static final BitSet FOLLOW_annotation_in_statements_and_directives1587 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
15216	public static final BitSet FOLLOW_label_in_ordered_method_item1672 = new BitSet(new long[]{0x0000000000000002L});
15217	public static final BitSet FOLLOW_instruction_in_ordered_method_item1678 = new BitSet(new long[]{0x0000000000000002L});
15218	public static final BitSet FOLLOW_debug_directive_in_ordered_method_item1684 = new BitSet(new long[]{0x0000000000000002L});
15219	public static final BitSet FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive1704 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
15220	public static final BitSet FOLLOW_integral_literal_in_registers_directive1708 = new BitSet(new long[]{0x0000000000000002L});
15221	public static final BitSet FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1728 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
15222	public static final BitSet FOLLOW_integral_literal_in_registers_directive1732 = new BitSet(new long[]{0x0000000000000002L});
15223	public static final BitSet FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id1764 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0080000000000000L});
15224	public static final BitSet FOLLOW_SIMPLE_NAME_in_simple_name1777 = new BitSet(new long[]{0x0000000000000002L});
15225	public static final BitSet FOLLOW_ACCESS_SPEC_in_simple_name1783 = new BitSet(new long[]{0x0000000000000002L});
15226	public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_simple_name1794 = new BitSet(new long[]{0x0000000000000002L});
15227	public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1805 = new BitSet(new long[]{0x0000000000000002L});
15228	public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1816 = new BitSet(new long[]{0x0000000000000002L});
15229	public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1827 = new BitSet(new long[]{0x0000000000000002L});
15230	public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1838 = new BitSet(new long[]{0x0000000000000002L});
15231	public static final BitSet FOLLOW_BOOL_LITERAL_in_simple_name1849 = new BitSet(new long[]{0x0000000000000002L});
15232	public static final BitSet FOLLOW_NULL_LITERAL_in_simple_name1860 = new BitSet(new long[]{0x0000000000000002L});
15233	public static final BitSet FOLLOW_REGISTER_in_simple_name1871 = new BitSet(new long[]{0x0000000000000002L});
15234	public static final BitSet FOLLOW_param_list_or_id_in_simple_name1882 = new BitSet(new long[]{0x0000000000000002L});
15235	public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_simple_name1892 = new BitSet(new long[]{0x0000000000000002L});
15236	public static final BitSet FOLLOW_VOID_TYPE_in_simple_name1903 = new BitSet(new long[]{0x0000000000000002L});
15237	public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_simple_name1914 = new BitSet(new long[]{0x0000000000000002L});
15238	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name1925 = new BitSet(new long[]{0x0000000000000002L});
15239	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name1936 = new BitSet(new long[]{0x0000000000000002L});
15240	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_simple_name1947 = new BitSet(new long[]{0x0000000000000002L});
15241	public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name1958 = new BitSet(new long[]{0x0000000000000002L});
15242	public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name1969 = new BitSet(new long[]{0x0000000000000002L});
15243	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name1980 = new BitSet(new long[]{0x0000000000000002L});
15244	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_simple_name1991 = new BitSet(new long[]{0x0000000000000002L});
15245	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name2002 = new BitSet(new long[]{0x0000000000000002L});
15246	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name2013 = new BitSet(new long[]{0x0000000000000002L});
15247	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name2024 = new BitSet(new long[]{0x0000000000000002L});
15248	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name2035 = new BitSet(new long[]{0x0000000000000002L});
15249	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_simple_name2046 = new BitSet(new long[]{0x0000000000000002L});
15250	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name2057 = new BitSet(new long[]{0x0000000000000002L});
15251	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name2068 = new BitSet(new long[]{0x0000000000000002L});
15252	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name2079 = new BitSet(new long[]{0x0000000000000002L});
15253	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name2090 = new BitSet(new long[]{0x0000000000000002L});
15254	public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name2101 = new BitSet(new long[]{0x0000000000000002L});
15255	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name2112 = new BitSet(new long[]{0x0000000000000002L});
15256	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name2123 = new BitSet(new long[]{0x0000000000000002L});
15257	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name2134 = new BitSet(new long[]{0x0000000000000002L});
15258	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_simple_name2145 = new BitSet(new long[]{0x0000000000000002L});
15259	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name2156 = new BitSet(new long[]{0x0000000000000002L});
15260	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_simple_name2167 = new BitSet(new long[]{0x0000000000000002L});
15261	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name2178 = new BitSet(new long[]{0x0000000000000002L});
15262	public static final BitSet FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_simple_name2189 = new BitSet(new long[]{0x0000000000000002L});
15263	public static final BitSet FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_simple_name2200 = new BitSet(new long[]{0x0000000000000002L});
15264	public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name2211 = new BitSet(new long[]{0x0000000000000002L});
15265	public static final BitSet FOLLOW_simple_name_in_member_name2226 = new BitSet(new long[]{0x0000000000000002L});
15266	public static final BitSet FOLLOW_MEMBER_NAME_in_member_name2232 = new BitSet(new long[]{0x0000000000000002L});
15267	public static final BitSet FOLLOW_OPEN_PAREN_in_method_prototype2247 = new BitSet(new long[]{0x0000000000048100L,0x0000000000000000L,0x0280000000000000L});
15268	public static final BitSet FOLLOW_param_list_in_method_prototype2249 = new BitSet(new long[]{0x0000000000040000L});
15269	public static final BitSet FOLLOW_CLOSE_PAREN_in_method_prototype2251 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L,0x0000000000000040L});
15270	public static final BitSet FOLLOW_type_descriptor_in_method_prototype2253 = new BitSet(new long[]{0x0000000000000002L});
15271	public static final BitSet FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id_primitive_type2283 = new BitSet(new long[]{0x0000000000000002L});
15272	public static final BitSet FOLLOW_param_list_or_id_primitive_type_in_param_list2298 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0080000000000000L});
15273	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_param_list2305 = new BitSet(new long[]{0x0000000000008102L,0x0000000000000000L,0x0200000000000000L});
15274	public static final BitSet FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor2316 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000000L,0x0200000000000000L});
15275	public static final BitSet FOLLOW_set_in_array_descriptor2318 = new BitSet(new long[]{0x0000000000000002L});
15276	public static final BitSet FOLLOW_VOID_TYPE_in_type_descriptor2334 = new BitSet(new long[]{0x0000000000000002L});
15277	public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_type_descriptor2340 = new BitSet(new long[]{0x0000000000000002L});
15278	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_type_descriptor2346 = new BitSet(new long[]{0x0000000000000002L});
15279	public static final BitSet FOLLOW_array_descriptor_in_type_descriptor2352 = new BitSet(new long[]{0x0000000000000002L});
15280	public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor2362 = new BitSet(new long[]{0x0000000000000002L});
15281	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor2368 = new BitSet(new long[]{0x0000000000000002L});
15282	public static final BitSet FOLLOW_array_descriptor_in_nonvoid_type_descriptor2374 = new BitSet(new long[]{0x0000000000000002L});
15283	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor2384 = new BitSet(new long[]{0x0000000000000002L});
15284	public static final BitSet FOLLOW_array_descriptor_in_reference_type_descriptor2390 = new BitSet(new long[]{0x0000000000000002L});
15285	public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal2400 = new BitSet(new long[]{0x0000000000000002L});
15286	public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal2411 = new BitSet(new long[]{0x0000000000000002L});
15287	public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal2426 = new BitSet(new long[]{0x0000000000000002L});
15288	public static final BitSet FOLLOW_FLOAT_LITERAL_in_float_literal2437 = new BitSet(new long[]{0x0000000000000002L});
15289	public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal2447 = new BitSet(new long[]{0x0000000000000002L});
15290	public static final BitSet FOLLOW_DOUBLE_LITERAL_in_double_literal2458 = new BitSet(new long[]{0x0000000000000002L});
15291	public static final BitSet FOLLOW_LONG_LITERAL_in_literal2468 = new BitSet(new long[]{0x0000000000000002L});
15292	public static final BitSet FOLLOW_integer_literal_in_literal2474 = new BitSet(new long[]{0x0000000000000002L});
15293	public static final BitSet FOLLOW_SHORT_LITERAL_in_literal2480 = new BitSet(new long[]{0x0000000000000002L});
15294	public static final BitSet FOLLOW_BYTE_LITERAL_in_literal2486 = new BitSet(new long[]{0x0000000000000002L});
15295	public static final BitSet FOLLOW_float_literal_in_literal2492 = new BitSet(new long[]{0x0000000000000002L});
15296	public static final BitSet FOLLOW_double_literal_in_literal2498 = new BitSet(new long[]{0x0000000000000002L});
15297	public static final BitSet FOLLOW_CHAR_LITERAL_in_literal2504 = new BitSet(new long[]{0x0000000000000002L});
15298	public static final BitSet FOLLOW_STRING_LITERAL_in_literal2510 = new BitSet(new long[]{0x0000000000000002L});
15299	public static final BitSet FOLLOW_BOOL_LITERAL_in_literal2516 = new BitSet(new long[]{0x0000000000000002L});
15300	public static final BitSet FOLLOW_NULL_LITERAL_in_literal2522 = new BitSet(new long[]{0x0000000000000002L});
15301	public static final BitSet FOLLOW_array_literal_in_literal2528 = new BitSet(new long[]{0x0000000000000002L});
15302	public static final BitSet FOLLOW_subannotation_in_literal2534 = new BitSet(new long[]{0x0000000000000002L});
15303	public static final BitSet FOLLOW_type_field_method_literal_in_literal2540 = new BitSet(new long[]{0x0000000000000002L});
15304	public static final BitSet FOLLOW_enum_literal_in_literal2546 = new BitSet(new long[]{0x0000000000000002L});
15305	public static final BitSet FOLLOW_integer_literal_in_parsed_integer_literal2559 = new BitSet(new long[]{0x0000000000000002L});
15306	public static final BitSet FOLLOW_LONG_LITERAL_in_integral_literal2571 = new BitSet(new long[]{0x0000000000000002L});
15307	public static final BitSet FOLLOW_integer_literal_in_integral_literal2577 = new BitSet(new long[]{0x0000000000000002L});
15308	public static final BitSet FOLLOW_SHORT_LITERAL_in_integral_literal2583 = new BitSet(new long[]{0x0000000000000002L});
15309	public static final BitSet FOLLOW_CHAR_LITERAL_in_integral_literal2589 = new BitSet(new long[]{0x0000000000000002L});
15310	public static final BitSet FOLLOW_BYTE_LITERAL_in_integral_literal2595 = new BitSet(new long[]{0x0000000000000002L});
15311	public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_32bit_literal2605 = new BitSet(new long[]{0x0000000000000002L});
15312	public static final BitSet FOLLOW_integer_literal_in_fixed_32bit_literal2611 = new BitSet(new long[]{0x0000000000000002L});
15313	public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal2617 = new BitSet(new long[]{0x0000000000000002L});
15314	public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal2623 = new BitSet(new long[]{0x0000000000000002L});
15315	public static final BitSet FOLLOW_float_literal_in_fixed_32bit_literal2629 = new BitSet(new long[]{0x0000000000000002L});
15316	public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal2635 = new BitSet(new long[]{0x0000000000000002L});
15317	public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal2641 = new BitSet(new long[]{0x0000000000000002L});
15318	public static final BitSet FOLLOW_integer_literal_in_fixed_literal2651 = new BitSet(new long[]{0x0000000000000002L});
15319	public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_literal2657 = new BitSet(new long[]{0x0000000000000002L});
15320	public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_literal2663 = new BitSet(new long[]{0x0000000000000002L});
15321	public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_literal2669 = new BitSet(new long[]{0x0000000000000002L});
15322	public static final BitSet FOLLOW_float_literal_in_fixed_literal2675 = new BitSet(new long[]{0x0000000000000002L});
15323	public static final BitSet FOLLOW_double_literal_in_fixed_literal2681 = new BitSet(new long[]{0x0000000000000002L});
15324	public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_literal2687 = new BitSet(new long[]{0x0000000000000002L});
15325	public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_literal2693 = new BitSet(new long[]{0x0000000000000002L});
15326	public static final BitSet FOLLOW_OPEN_BRACE_in_array_literal2703 = new BitSet(new long[]{0xF4795CC200C2CD50L,0x0000000000E0FB16L,0xCB8EC00000000000L,0x000000000000006CL});
15327	public static final BitSet FOLLOW_literal_in_array_literal2706 = new BitSet(new long[]{0x0000000000120000L});
15328	public static final BitSet FOLLOW_COMMA_in_array_literal2709 = new BitSet(new long[]{0xF4795CC200C0CD50L,0x0000000000E0FB16L,0xCB8EC00000000000L,0x000000000000006CL});
15329	public static final BitSet FOLLOW_literal_in_array_literal2711 = new BitSet(new long[]{0x0000000000120000L});
15330	public static final BitSet FOLLOW_CLOSE_BRACE_in_array_literal2719 = new BitSet(new long[]{0x0000000000000002L});
15331	public static final BitSet FOLLOW_simple_name_in_annotation_element2743 = new BitSet(new long[]{0x0000000800000000L});
15332	public static final BitSet FOLLOW_EQUAL_in_annotation_element2745 = new BitSet(new long[]{0xF4795CC200C0CD50L,0x0000000000E0FB16L,0xCB8EC00000000000L,0x000000000000006CL});
15333	public static final BitSet FOLLOW_literal_in_annotation_element2747 = new BitSet(new long[]{0x0000000000000002L});
15334	public static final BitSet FOLLOW_ANNOTATION_DIRECTIVE_in_annotation2772 = new BitSet(new long[]{0x0000000000000040L});
15335	public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_annotation2774 = new BitSet(new long[]{0x0000000000008000L});
15336	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_annotation2776 = new BitSet(new long[]{0xF4795C8001800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
15337	public static final BitSet FOLLOW_annotation_element_in_annotation2782 = new BitSet(new long[]{0xF4795C8001800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
15338	public static final BitSet FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation2785 = new BitSet(new long[]{0x0000000000000002L});
15339	public static final BitSet FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation2818 = new BitSet(new long[]{0x0000000000008000L});
15340	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_subannotation2820 = new BitSet(new long[]{0xF4795C8100800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
15341	public static final BitSet FOLLOW_annotation_element_in_subannotation2822 = new BitSet(new long[]{0xF4795C8100800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
15342	public static final BitSet FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation2825 = new BitSet(new long[]{0x0000000000000002L});
15343	public static final BitSet FOLLOW_ENUM_DIRECTIVE_in_enum_literal2852 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15344	public static final BitSet FOLLOW_field_reference_in_enum_literal2854 = new BitSet(new long[]{0x0000000000000002L});
15345	public static final BitSet FOLLOW_reference_type_descriptor_in_type_field_method_literal2874 = new BitSet(new long[]{0x0000000000000002L});
15346	public static final BitSet FOLLOW_reference_type_descriptor_in_type_field_method_literal2883 = new BitSet(new long[]{0x0000000000000200L});
15347	public static final BitSet FOLLOW_ARROW_in_type_field_method_literal2885 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15348	public static final BitSet FOLLOW_member_name_in_type_field_method_literal2897 = new BitSet(new long[]{0x0000000000080000L});
15349	public static final BitSet FOLLOW_COLON_in_type_field_method_literal2899 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
15350	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal2901 = new BitSet(new long[]{0x0000000000000002L});
15351	public static final BitSet FOLLOW_member_name_in_type_field_method_literal2924 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
15352	public static final BitSet FOLLOW_method_prototype_in_type_field_method_literal2926 = new BitSet(new long[]{0x0000000000000002L});
15353	public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal2959 = new BitSet(new long[]{0x0000000000000002L});
15354	public static final BitSet FOLLOW_VOID_TYPE_in_type_field_method_literal2965 = new BitSet(new long[]{0x0000000000000002L});
15355	public static final BitSet FOLLOW_reference_type_descriptor_in_method_reference2976 = new BitSet(new long[]{0x0000000000000200L});
15356	public static final BitSet FOLLOW_ARROW_in_method_reference2978 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15357	public static final BitSet FOLLOW_member_name_in_method_reference2982 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
15358	public static final BitSet FOLLOW_method_prototype_in_method_reference2984 = new BitSet(new long[]{0x0000000000000002L});
15359	public static final BitSet FOLLOW_reference_type_descriptor_in_field_reference3006 = new BitSet(new long[]{0x0000000000000200L});
15360	public static final BitSet FOLLOW_ARROW_in_field_reference3008 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15361	public static final BitSet FOLLOW_member_name_in_field_reference3012 = new BitSet(new long[]{0x0000000000080000L});
15362	public static final BitSet FOLLOW_COLON_in_field_reference3014 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
15363	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field_reference3016 = new BitSet(new long[]{0x0000000000000002L});
15364	public static final BitSet FOLLOW_COLON_in_label3037 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
15365	public static final BitSet FOLLOW_simple_name_in_label3039 = new BitSet(new long[]{0x0000000000000002L});
15366	public static final BitSet FOLLOW_COLON_in_label_ref3058 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
15367	public static final BitSet FOLLOW_simple_name_in_label_ref3060 = new BitSet(new long[]{0x0000000000000002L});
15368	public static final BitSet FOLLOW_REGISTER_in_register_list3074 = new BitSet(new long[]{0x0000000000100002L});
15369	public static final BitSet FOLLOW_COMMA_in_register_list3077 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15370	public static final BitSet FOLLOW_REGISTER_in_register_list3079 = new BitSet(new long[]{0x0000000000100002L});
15371	public static final BitSet FOLLOW_REGISTER_in_register_range3114 = new BitSet(new long[]{0x0000000000200002L});
15372	public static final BitSet FOLLOW_DOTDOT_in_register_range3117 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15373	public static final BitSet FOLLOW_REGISTER_in_register_range3121 = new BitSet(new long[]{0x0000000000000002L});
15374	public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference3150 = new BitSet(new long[]{0x0000000000000002L});
15375	public static final BitSet FOLLOW_field_reference_in_verification_error_reference3154 = new BitSet(new long[]{0x0000000000000002L});
15376	public static final BitSet FOLLOW_method_reference_in_verification_error_reference3158 = new BitSet(new long[]{0x0000000000000002L});
15377	public static final BitSet FOLLOW_CATCH_DIRECTIVE_in_catch_directive3168 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
15378	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_catch_directive3170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15379	public static final BitSet FOLLOW_OPEN_BRACE_in_catch_directive3172 = new BitSet(new long[]{0x0000000000080000L});
15380	public static final BitSet FOLLOW_label_ref_in_catch_directive3176 = new BitSet(new long[]{0x0000000000200000L});
15381	public static final BitSet FOLLOW_DOTDOT_in_catch_directive3178 = new BitSet(new long[]{0x0000000000080000L});
15382	public static final BitSet FOLLOW_label_ref_in_catch_directive3182 = new BitSet(new long[]{0x0000000000020000L});
15383	public static final BitSet FOLLOW_CLOSE_BRACE_in_catch_directive3184 = new BitSet(new long[]{0x0000000000080000L});
15384	public static final BitSet FOLLOW_label_ref_in_catch_directive3188 = new BitSet(new long[]{0x0000000000000002L});
15385	public static final BitSet FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive3220 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15386	public static final BitSet FOLLOW_OPEN_BRACE_in_catchall_directive3222 = new BitSet(new long[]{0x0000000000080000L});
15387	public static final BitSet FOLLOW_label_ref_in_catchall_directive3226 = new BitSet(new long[]{0x0000000000200000L});
15388	public static final BitSet FOLLOW_DOTDOT_in_catchall_directive3228 = new BitSet(new long[]{0x0000000000080000L});
15389	public static final BitSet FOLLOW_label_ref_in_catchall_directive3232 = new BitSet(new long[]{0x0000000000020000L});
15390	public static final BitSet FOLLOW_CLOSE_BRACE_in_catchall_directive3234 = new BitSet(new long[]{0x0000000000080000L});
15391	public static final BitSet FOLLOW_label_ref_in_catchall_directive3238 = new BitSet(new long[]{0x0000000000000002L});
15392	public static final BitSet FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive3277 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15393	public static final BitSet FOLLOW_REGISTER_in_parameter_directive3279 = new BitSet(new long[]{0x0000000040100022L});
15394	public static final BitSet FOLLOW_COMMA_in_parameter_directive3282 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
15395	public static final BitSet FOLLOW_STRING_LITERAL_in_parameter_directive3284 = new BitSet(new long[]{0x0000000040000022L});
15396	public static final BitSet FOLLOW_annotation_in_parameter_directive3295 = new BitSet(new long[]{0x0000000040000022L});
15397	public static final BitSet FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive3308 = new BitSet(new long[]{0x0000000000000002L});
15398	public static final BitSet FOLLOW_line_directive_in_debug_directive3381 = new BitSet(new long[]{0x0000000000000002L});
15399	public static final BitSet FOLLOW_local_directive_in_debug_directive3387 = new BitSet(new long[]{0x0000000000000002L});
15400	public static final BitSet FOLLOW_end_local_directive_in_debug_directive3393 = new BitSet(new long[]{0x0000000000000002L});
15401	public static final BitSet FOLLOW_restart_local_directive_in_debug_directive3399 = new BitSet(new long[]{0x0000000000000002L});
15402	public static final BitSet FOLLOW_prologue_directive_in_debug_directive3405 = new BitSet(new long[]{0x0000000000000002L});
15403	public static final BitSet FOLLOW_epilogue_directive_in_debug_directive3411 = new BitSet(new long[]{0x0000000000000002L});
15404	public static final BitSet FOLLOW_source_directive_in_debug_directive3417 = new BitSet(new long[]{0x0000000000000002L});
15405	public static final BitSet FOLLOW_LINE_DIRECTIVE_in_line_directive3427 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
15406	public static final BitSet FOLLOW_integral_literal_in_line_directive3429 = new BitSet(new long[]{0x0000000000000002L});
15407	public static final BitSet FOLLOW_LOCAL_DIRECTIVE_in_local_directive3452 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15408	public static final BitSet FOLLOW_REGISTER_in_local_directive3454 = new BitSet(new long[]{0x0000000000100002L});
15409	public static final BitSet FOLLOW_COMMA_in_local_directive3457 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L,0x0000000000000004L});
15410	public static final BitSet FOLLOW_NULL_LITERAL_in_local_directive3460 = new BitSet(new long[]{0x0000000000080000L});
15411	public static final BitSet FOLLOW_STRING_LITERAL_in_local_directive3466 = new BitSet(new long[]{0x0000000000080000L});
15412	public static final BitSet FOLLOW_COLON_in_local_directive3469 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L,0x0000000000000040L});
15413	public static final BitSet FOLLOW_VOID_TYPE_in_local_directive3472 = new BitSet(new long[]{0x0000000000100002L});
15414	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_local_directive3476 = new BitSet(new long[]{0x0000000000100002L});
15415	public static final BitSet FOLLOW_COMMA_in_local_directive3510 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
15416	public static final BitSet FOLLOW_STRING_LITERAL_in_local_directive3514 = new BitSet(new long[]{0x0000000000000002L});
15417	public static final BitSet FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive3556 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15418	public static final BitSet FOLLOW_REGISTER_in_end_local_directive3558 = new BitSet(new long[]{0x0000000000000002L});
15419	public static final BitSet FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive3581 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15420	public static final BitSet FOLLOW_REGISTER_in_restart_local_directive3583 = new BitSet(new long[]{0x0000000000000002L});
15421	public static final BitSet FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive3606 = new BitSet(new long[]{0x0000000000000002L});
15422	public static final BitSet FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive3627 = new BitSet(new long[]{0x0000000000000002L});
15423	public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_directive3648 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
15424	public static final BitSet FOLLOW_STRING_LITERAL_in_source_directive3650 = new BitSet(new long[]{0x0000000000000002L});
15425	public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x3675 = new BitSet(new long[]{0x0000000000000002L});
15426	public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x3681 = new BitSet(new long[]{0x0000000000000002L});
15427	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s3696 = new BitSet(new long[]{0x0000000000000002L});
15428	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s3702 = new BitSet(new long[]{0x0000000000000002L});
15429	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i3717 = new BitSet(new long[]{0x0000000000000002L});
15430	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i3723 = new BitSet(new long[]{0x0000000000000002L});
15431	public static final BitSet FOLLOW_insn_format10t_in_instruction3740 = new BitSet(new long[]{0x0000000000000002L});
15432	public static final BitSet FOLLOW_insn_format10x_in_instruction3746 = new BitSet(new long[]{0x0000000000000002L});
15433	public static final BitSet FOLLOW_insn_format10x_odex_in_instruction3752 = new BitSet(new long[]{0x0000000000000002L});
15434	public static final BitSet FOLLOW_insn_format11n_in_instruction3758 = new BitSet(new long[]{0x0000000000000002L});
15435	public static final BitSet FOLLOW_insn_format11x_in_instruction3764 = new BitSet(new long[]{0x0000000000000002L});
15436	public static final BitSet FOLLOW_insn_format12x_in_instruction3770 = new BitSet(new long[]{0x0000000000000002L});
15437	public static final BitSet FOLLOW_insn_format20bc_in_instruction3776 = new BitSet(new long[]{0x0000000000000002L});
15438	public static final BitSet FOLLOW_insn_format20t_in_instruction3782 = new BitSet(new long[]{0x0000000000000002L});
15439	public static final BitSet FOLLOW_insn_format21c_field_in_instruction3788 = new BitSet(new long[]{0x0000000000000002L});
15440	public static final BitSet FOLLOW_insn_format21c_field_odex_in_instruction3794 = new BitSet(new long[]{0x0000000000000002L});
15441	public static final BitSet FOLLOW_insn_format21c_string_in_instruction3800 = new BitSet(new long[]{0x0000000000000002L});
15442	public static final BitSet FOLLOW_insn_format21c_type_in_instruction3806 = new BitSet(new long[]{0x0000000000000002L});
15443	public static final BitSet FOLLOW_insn_format21ih_in_instruction3812 = new BitSet(new long[]{0x0000000000000002L});
15444	public static final BitSet FOLLOW_insn_format21lh_in_instruction3818 = new BitSet(new long[]{0x0000000000000002L});
15445	public static final BitSet FOLLOW_insn_format21s_in_instruction3824 = new BitSet(new long[]{0x0000000000000002L});
15446	public static final BitSet FOLLOW_insn_format21t_in_instruction3830 = new BitSet(new long[]{0x0000000000000002L});
15447	public static final BitSet FOLLOW_insn_format22b_in_instruction3836 = new BitSet(new long[]{0x0000000000000002L});
15448	public static final BitSet FOLLOW_insn_format22c_field_in_instruction3842 = new BitSet(new long[]{0x0000000000000002L});
15449	public static final BitSet FOLLOW_insn_format22c_field_odex_in_instruction3848 = new BitSet(new long[]{0x0000000000000002L});
15450	public static final BitSet FOLLOW_insn_format22c_type_in_instruction3854 = new BitSet(new long[]{0x0000000000000002L});
15451	public static final BitSet FOLLOW_insn_format22cs_field_in_instruction3860 = new BitSet(new long[]{0x0000000000000002L});
15452	public static final BitSet FOLLOW_insn_format22s_in_instruction3866 = new BitSet(new long[]{0x0000000000000002L});
15453	public static final BitSet FOLLOW_insn_format22t_in_instruction3872 = new BitSet(new long[]{0x0000000000000002L});
15454	public static final BitSet FOLLOW_insn_format22x_in_instruction3878 = new BitSet(new long[]{0x0000000000000002L});
15455	public static final BitSet FOLLOW_insn_format23x_in_instruction3884 = new BitSet(new long[]{0x0000000000000002L});
15456	public static final BitSet FOLLOW_insn_format30t_in_instruction3890 = new BitSet(new long[]{0x0000000000000002L});
15457	public static final BitSet FOLLOW_insn_format31c_in_instruction3896 = new BitSet(new long[]{0x0000000000000002L});
15458	public static final BitSet FOLLOW_insn_format31i_in_instruction3902 = new BitSet(new long[]{0x0000000000000002L});
15459	public static final BitSet FOLLOW_insn_format31t_in_instruction3908 = new BitSet(new long[]{0x0000000000000002L});
15460	public static final BitSet FOLLOW_insn_format32x_in_instruction3914 = new BitSet(new long[]{0x0000000000000002L});
15461	public static final BitSet FOLLOW_insn_format35c_method_in_instruction3920 = new BitSet(new long[]{0x0000000000000002L});
15462	public static final BitSet FOLLOW_insn_format35c_type_in_instruction3926 = new BitSet(new long[]{0x0000000000000002L});
15463	public static final BitSet FOLLOW_insn_format35c_method_odex_in_instruction3932 = new BitSet(new long[]{0x0000000000000002L});
15464	public static final BitSet FOLLOW_insn_format35mi_method_in_instruction3938 = new BitSet(new long[]{0x0000000000000002L});
15465	public static final BitSet FOLLOW_insn_format35ms_method_in_instruction3944 = new BitSet(new long[]{0x0000000000000002L});
15466	public static final BitSet FOLLOW_insn_format3rc_method_in_instruction3950 = new BitSet(new long[]{0x0000000000000002L});
15467	public static final BitSet FOLLOW_insn_format3rc_method_odex_in_instruction3956 = new BitSet(new long[]{0x0000000000000002L});
15468	public static final BitSet FOLLOW_insn_format3rc_type_in_instruction3962 = new BitSet(new long[]{0x0000000000000002L});
15469	public static final BitSet FOLLOW_insn_format3rmi_method_in_instruction3968 = new BitSet(new long[]{0x0000000000000002L});
15470	public static final BitSet FOLLOW_insn_format3rms_method_in_instruction3974 = new BitSet(new long[]{0x0000000000000002L});
15471	public static final BitSet FOLLOW_insn_format45cc_method_in_instruction3980 = new BitSet(new long[]{0x0000000000000002L});
15472	public static final BitSet FOLLOW_insn_format4rcc_method_in_instruction3986 = new BitSet(new long[]{0x0000000000000002L});
15473	public static final BitSet FOLLOW_insn_format51l_in_instruction3992 = new BitSet(new long[]{0x0000000000000002L});
15474	public static final BitSet FOLLOW_insn_array_data_directive_in_instruction3998 = new BitSet(new long[]{0x0000000000000002L});
15475	public static final BitSet FOLLOW_insn_packed_switch_directive_in_instruction4004 = new BitSet(new long[]{0x0000000000000002L});
15476	public static final BitSet FOLLOW_insn_sparse_switch_directive_in_instruction4010 = new BitSet(new long[]{0x0000000000000002L});
15477	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t4030 = new BitSet(new long[]{0x0000000000080000L});
15478	public static final BitSet FOLLOW_label_ref_in_insn_format10t4032 = new BitSet(new long[]{0x0000000000000002L});
15479	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x4062 = new BitSet(new long[]{0x0000000000000002L});
15480	public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_insn_format10x_odex4090 = new BitSet(new long[]{0x0000000000000002L});
15481	public static final BitSet FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n4111 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15482	public static final BitSet FOLLOW_REGISTER_in_insn_format11n4113 = new BitSet(new long[]{0x0000000000100000L});
15483	public static final BitSet FOLLOW_COMMA_in_insn_format11n4115 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
15484	public static final BitSet FOLLOW_integral_literal_in_insn_format11n4117 = new BitSet(new long[]{0x0000000000000002L});
15485	public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x4149 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15486	public static final BitSet FOLLOW_REGISTER_in_insn_format11x4151 = new BitSet(new long[]{0x0000000000000002L});
15487	public static final BitSet FOLLOW_instruction_format12x_in_insn_format12x4181 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15488	public static final BitSet FOLLOW_REGISTER_in_insn_format12x4183 = new BitSet(new long[]{0x0000000000100000L});
15489	public static final BitSet FOLLOW_COMMA_in_insn_format12x4185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15490	public static final BitSet FOLLOW_REGISTER_in_insn_format12x4187 = new BitSet(new long[]{0x0000000000000002L});
15491	public static final BitSet FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc4219 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
15492	public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_insn_format20bc4221 = new BitSet(new long[]{0x0000000000100000L});
15493	public static final BitSet FOLLOW_COMMA_in_insn_format20bc4223 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15494	public static final BitSet FOLLOW_verification_error_reference_in_insn_format20bc4225 = new BitSet(new long[]{0x0000000000000002L});
15495	public static final BitSet FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t4262 = new BitSet(new long[]{0x0000000000080000L});
15496	public static final BitSet FOLLOW_label_ref_in_insn_format20t4264 = new BitSet(new long[]{0x0000000000000002L});
15497	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_insn_format21c_field4294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15498	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field4296 = new BitSet(new long[]{0x0000000000100000L});
15499	public static final BitSet FOLLOW_COMMA_in_insn_format21c_field4298 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15500	public static final BitSet FOLLOW_field_reference_in_insn_format21c_field4300 = new BitSet(new long[]{0x0000000000000002L});
15501	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_insn_format21c_field_odex4332 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15502	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field_odex4334 = new BitSet(new long[]{0x0000000000100000L});
15503	public static final BitSet FOLLOW_COMMA_in_insn_format21c_field_odex4336 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15504	public static final BitSet FOLLOW_field_reference_in_insn_format21c_field_odex4338 = new BitSet(new long[]{0x0000000000000002L});
15505	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string4376 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15506	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_string4378 = new BitSet(new long[]{0x0000000000100000L});
15507	public static final BitSet FOLLOW_COMMA_in_insn_format21c_string4380 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
15508	public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format21c_string4382 = new BitSet(new long[]{0x0000000000000002L});
15509	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type4414 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15510	public static final BitSet FOLLOW_REGISTER_in_insn_format21c_type4416 = new BitSet(new long[]{0x0000000000100000L});
15511	public static final BitSet FOLLOW_COMMA_in_insn_format21c_type4418 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
15512	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type4420 = new BitSet(new long[]{0x0000000000000002L});
15513	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih4452 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15514	public static final BitSet FOLLOW_REGISTER_in_insn_format21ih4454 = new BitSet(new long[]{0x0000000000100000L});
15515	public static final BitSet FOLLOW_COMMA_in_insn_format21ih4456 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x4102400000000000L});
15516	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21ih4458 = new BitSet(new long[]{0x0000000000000002L});
15517	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh4490 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15518	public static final BitSet FOLLOW_REGISTER_in_insn_format21lh4492 = new BitSet(new long[]{0x0000000000100000L});
15519	public static final BitSet FOLLOW_COMMA_in_insn_format21lh4494 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x4102400000000000L});
15520	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21lh4496 = new BitSet(new long[]{0x0000000000000002L});
15521	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s4528 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15522	public static final BitSet FOLLOW_REGISTER_in_insn_format21s4530 = new BitSet(new long[]{0x0000000000100000L});
15523	public static final BitSet FOLLOW_COMMA_in_insn_format21s4532 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
15524	public static final BitSet FOLLOW_integral_literal_in_insn_format21s4534 = new BitSet(new long[]{0x0000000000000002L});
15525	public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t4566 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15526	public static final BitSet FOLLOW_REGISTER_in_insn_format21t4568 = new BitSet(new long[]{0x0000000000100000L});
15527	public static final BitSet FOLLOW_COMMA_in_insn_format21t4570 = new BitSet(new long[]{0x0000000000080000L});
15528	public static final BitSet FOLLOW_label_ref_in_insn_format21t4572 = new BitSet(new long[]{0x0000000000000002L});
15529	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b4604 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15530	public static final BitSet FOLLOW_REGISTER_in_insn_format22b4606 = new BitSet(new long[]{0x0000000000100000L});
15531	public static final BitSet FOLLOW_COMMA_in_insn_format22b4608 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15532	public static final BitSet FOLLOW_REGISTER_in_insn_format22b4610 = new BitSet(new long[]{0x0000000000100000L});
15533	public static final BitSet FOLLOW_COMMA_in_insn_format22b4612 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
15534	public static final BitSet FOLLOW_integral_literal_in_insn_format22b4614 = new BitSet(new long[]{0x0000000000000002L});
15535	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_insn_format22c_field4648 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15536	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field4650 = new BitSet(new long[]{0x0000000000100000L});
15537	public static final BitSet FOLLOW_COMMA_in_insn_format22c_field4652 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15538	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field4654 = new BitSet(new long[]{0x0000000000100000L});
15539	public static final BitSet FOLLOW_COMMA_in_insn_format22c_field4656 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15540	public static final BitSet FOLLOW_field_reference_in_insn_format22c_field4658 = new BitSet(new long[]{0x0000000000000002L});
15541	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_insn_format22c_field_odex4692 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15542	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field_odex4694 = new BitSet(new long[]{0x0000000000100000L});
15543	public static final BitSet FOLLOW_COMMA_in_insn_format22c_field_odex4696 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15544	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field_odex4698 = new BitSet(new long[]{0x0000000000100000L});
15545	public static final BitSet FOLLOW_COMMA_in_insn_format22c_field_odex4700 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15546	public static final BitSet FOLLOW_field_reference_in_insn_format22c_field_odex4702 = new BitSet(new long[]{0x0000000000000002L});
15547	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type4742 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15548	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type4744 = new BitSet(new long[]{0x0000000000100000L});
15549	public static final BitSet FOLLOW_COMMA_in_insn_format22c_type4746 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15550	public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type4748 = new BitSet(new long[]{0x0000000000100000L});
15551	public static final BitSet FOLLOW_COMMA_in_insn_format22c_type4750 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
15552	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type4752 = new BitSet(new long[]{0x0000000000000002L});
15553	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_insn_format22cs_field4786 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15554	public static final BitSet FOLLOW_REGISTER_in_insn_format22cs_field4788 = new BitSet(new long[]{0x0000000000100000L});
15555	public static final BitSet FOLLOW_COMMA_in_insn_format22cs_field4790 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15556	public static final BitSet FOLLOW_REGISTER_in_insn_format22cs_field4792 = new BitSet(new long[]{0x0000000000100000L});
15557	public static final BitSet FOLLOW_COMMA_in_insn_format22cs_field4794 = new BitSet(new long[]{0x0000002000000000L});
15558	public static final BitSet FOLLOW_FIELD_OFFSET_in_insn_format22cs_field4796 = new BitSet(new long[]{0x0000000000000002L});
15559	public static final BitSet FOLLOW_instruction_format22s_in_insn_format22s4817 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15560	public static final BitSet FOLLOW_REGISTER_in_insn_format22s4819 = new BitSet(new long[]{0x0000000000100000L});
15561	public static final BitSet FOLLOW_COMMA_in_insn_format22s4821 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15562	public static final BitSet FOLLOW_REGISTER_in_insn_format22s4823 = new BitSet(new long[]{0x0000000000100000L});
15563	public static final BitSet FOLLOW_COMMA_in_insn_format22s4825 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
15564	public static final BitSet FOLLOW_integral_literal_in_insn_format22s4827 = new BitSet(new long[]{0x0000000000000002L});
15565	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t4861 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15566	public static final BitSet FOLLOW_REGISTER_in_insn_format22t4863 = new BitSet(new long[]{0x0000000000100000L});
15567	public static final BitSet FOLLOW_COMMA_in_insn_format22t4865 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15568	public static final BitSet FOLLOW_REGISTER_in_insn_format22t4867 = new BitSet(new long[]{0x0000000000100000L});
15569	public static final BitSet FOLLOW_COMMA_in_insn_format22t4869 = new BitSet(new long[]{0x0000000000080000L});
15570	public static final BitSet FOLLOW_label_ref_in_insn_format22t4871 = new BitSet(new long[]{0x0000000000000002L});
15571	public static final BitSet FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x4905 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15572	public static final BitSet FOLLOW_REGISTER_in_insn_format22x4907 = new BitSet(new long[]{0x0000000000100000L});
15573	public static final BitSet FOLLOW_COMMA_in_insn_format22x4909 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15574	public static final BitSet FOLLOW_REGISTER_in_insn_format22x4911 = new BitSet(new long[]{0x0000000000000002L});
15575	public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x4943 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15576	public static final BitSet FOLLOW_REGISTER_in_insn_format23x4945 = new BitSet(new long[]{0x0000000000100000L});
15577	public static final BitSet FOLLOW_COMMA_in_insn_format23x4947 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15578	public static final BitSet FOLLOW_REGISTER_in_insn_format23x4949 = new BitSet(new long[]{0x0000000000100000L});
15579	public static final BitSet FOLLOW_COMMA_in_insn_format23x4951 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15580	public static final BitSet FOLLOW_REGISTER_in_insn_format23x4953 = new BitSet(new long[]{0x0000000000000002L});
15581	public static final BitSet FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t4987 = new BitSet(new long[]{0x0000000000080000L});
15582	public static final BitSet FOLLOW_label_ref_in_insn_format30t4989 = new BitSet(new long[]{0x0000000000000002L});
15583	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c5019 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15584	public static final BitSet FOLLOW_REGISTER_in_insn_format31c5021 = new BitSet(new long[]{0x0000000000100000L});
15585	public static final BitSet FOLLOW_COMMA_in_insn_format31c5023 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
15586	public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format31c5025 = new BitSet(new long[]{0x0000000000000002L});
15587	public static final BitSet FOLLOW_instruction_format31i_in_insn_format31i5056 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15588	public static final BitSet FOLLOW_REGISTER_in_insn_format31i5058 = new BitSet(new long[]{0x0000000000100000L});
15589	public static final BitSet FOLLOW_COMMA_in_insn_format31i5060 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x4102400000000000L});
15590	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format31i5062 = new BitSet(new long[]{0x0000000000000002L});
15591	public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t5094 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15592	public static final BitSet FOLLOW_REGISTER_in_insn_format31t5096 = new BitSet(new long[]{0x0000000000100000L});
15593	public static final BitSet FOLLOW_COMMA_in_insn_format31t5098 = new BitSet(new long[]{0x0000000000080000L});
15594	public static final BitSet FOLLOW_label_ref_in_insn_format31t5100 = new BitSet(new long[]{0x0000000000000002L});
15595	public static final BitSet FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x5132 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15596	public static final BitSet FOLLOW_REGISTER_in_insn_format32x5134 = new BitSet(new long[]{0x0000000000100000L});
15597	public static final BitSet FOLLOW_COMMA_in_insn_format32x5136 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15598	public static final BitSet FOLLOW_REGISTER_in_insn_format32x5138 = new BitSet(new long[]{0x0000000000000002L});
15599	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method5170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15600	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_method5172 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15601	public static final BitSet FOLLOW_register_list_in_insn_format35c_method5174 = new BitSet(new long[]{0x0000000000020000L});
15602	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_method5176 = new BitSet(new long[]{0x0000000000100000L});
15603	public static final BitSet FOLLOW_COMMA_in_insn_format35c_method5178 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15604	public static final BitSet FOLLOW_method_reference_in_insn_format35c_method5180 = new BitSet(new long[]{0x0000000000000002L});
15605	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type5212 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15606	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_type5214 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15607	public static final BitSet FOLLOW_register_list_in_insn_format35c_type5216 = new BitSet(new long[]{0x0000000000020000L});
15608	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_type5218 = new BitSet(new long[]{0x0000000000100000L});
15609	public static final BitSet FOLLOW_COMMA_in_insn_format35c_type5220 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
15610	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type5222 = new BitSet(new long[]{0x0000000000000002L});
15611	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_insn_format35c_method_odex5254 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15612	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_method_odex5256 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15613	public static final BitSet FOLLOW_register_list_in_insn_format35c_method_odex5258 = new BitSet(new long[]{0x0000000000020000L});
15614	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_method_odex5260 = new BitSet(new long[]{0x0000000000100000L});
15615	public static final BitSet FOLLOW_COMMA_in_insn_format35c_method_odex5262 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15616	public static final BitSet FOLLOW_method_reference_in_insn_format35c_method_odex5264 = new BitSet(new long[]{0x0000000000000002L});
15617	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_insn_format35mi_method5285 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15618	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35mi_method5287 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15619	public static final BitSet FOLLOW_register_list_in_insn_format35mi_method5289 = new BitSet(new long[]{0x0000000000020000L});
15620	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35mi_method5291 = new BitSet(new long[]{0x0000000000100000L});
15621	public static final BitSet FOLLOW_COMMA_in_insn_format35mi_method5293 = new BitSet(new long[]{0x0000020000000000L});
15622	public static final BitSet FOLLOW_INLINE_INDEX_in_insn_format35mi_method5295 = new BitSet(new long[]{0x0000000000000002L});
15623	public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_insn_format35ms_method5316 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15624	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35ms_method5318 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15625	public static final BitSet FOLLOW_register_list_in_insn_format35ms_method5320 = new BitSet(new long[]{0x0000000000020000L});
15626	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35ms_method5322 = new BitSet(new long[]{0x0000000000100000L});
15627	public static final BitSet FOLLOW_COMMA_in_insn_format35ms_method5324 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
15628	public static final BitSet FOLLOW_VTABLE_INDEX_in_insn_format35ms_method5326 = new BitSet(new long[]{0x0000000000000002L});
15629	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method5347 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15630	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_method5349 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15631	public static final BitSet FOLLOW_register_range_in_insn_format3rc_method5351 = new BitSet(new long[]{0x0000000000020000L});
15632	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_method5353 = new BitSet(new long[]{0x0000000000100000L});
15633	public static final BitSet FOLLOW_COMMA_in_insn_format3rc_method5355 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15634	public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method5357 = new BitSet(new long[]{0x0000000000000002L});
15635	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_ODEX_in_insn_format3rc_method_odex5389 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15636	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_method_odex5391 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15637	public static final BitSet FOLLOW_register_list_in_insn_format3rc_method_odex5393 = new BitSet(new long[]{0x0000000000020000L});
15638	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_method_odex5395 = new BitSet(new long[]{0x0000000000100000L});
15639	public static final BitSet FOLLOW_COMMA_in_insn_format3rc_method_odex5397 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15640	public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method_odex5399 = new BitSet(new long[]{0x0000000000000002L});
15641	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type5420 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15642	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_type5422 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15643	public static final BitSet FOLLOW_register_range_in_insn_format3rc_type5424 = new BitSet(new long[]{0x0000000000020000L});
15644	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_type5426 = new BitSet(new long[]{0x0000000000100000L});
15645	public static final BitSet FOLLOW_COMMA_in_insn_format3rc_type5428 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
15646	public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type5430 = new BitSet(new long[]{0x0000000000000002L});
15647	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rmi_METHOD_in_insn_format3rmi_method5462 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15648	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rmi_method5464 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15649	public static final BitSet FOLLOW_register_range_in_insn_format3rmi_method5466 = new BitSet(new long[]{0x0000000000020000L});
15650	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rmi_method5468 = new BitSet(new long[]{0x0000000000100000L});
15651	public static final BitSet FOLLOW_COMMA_in_insn_format3rmi_method5470 = new BitSet(new long[]{0x0000020000000000L});
15652	public static final BitSet FOLLOW_INLINE_INDEX_in_insn_format3rmi_method5472 = new BitSet(new long[]{0x0000000000000002L});
15653	public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_insn_format3rms_method5493 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15654	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rms_method5495 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15655	public static final BitSet FOLLOW_register_range_in_insn_format3rms_method5497 = new BitSet(new long[]{0x0000000000020000L});
15656	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rms_method5499 = new BitSet(new long[]{0x0000000000100000L});
15657	public static final BitSet FOLLOW_COMMA_in_insn_format3rms_method5501 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
15658	public static final BitSet FOLLOW_VTABLE_INDEX_in_insn_format3rms_method5503 = new BitSet(new long[]{0x0000000000000002L});
15659	public static final BitSet FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method5524 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15660	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format45cc_method5526 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15661	public static final BitSet FOLLOW_register_list_in_insn_format45cc_method5528 = new BitSet(new long[]{0x0000000000020000L});
15662	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format45cc_method5530 = new BitSet(new long[]{0x0000000000100000L});
15663	public static final BitSet FOLLOW_COMMA_in_insn_format45cc_method5532 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15664	public static final BitSet FOLLOW_method_reference_in_insn_format45cc_method5534 = new BitSet(new long[]{0x0000000000100000L});
15665	public static final BitSet FOLLOW_COMMA_in_insn_format45cc_method5536 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
15666	public static final BitSet FOLLOW_method_prototype_in_insn_format45cc_method5538 = new BitSet(new long[]{0x0000000000000002L});
15667	public static final BitSet FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method5572 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
15668	public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format4rcc_method5574 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
15669	public static final BitSet FOLLOW_register_range_in_insn_format4rcc_method5576 = new BitSet(new long[]{0x0000000000020000L});
15670	public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format4rcc_method5578 = new BitSet(new long[]{0x0000000000100000L});
15671	public static final BitSet FOLLOW_COMMA_in_insn_format4rcc_method5580 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
15672	public static final BitSet FOLLOW_method_reference_in_insn_format4rcc_method5582 = new BitSet(new long[]{0x0000000000100000L});
15673	public static final BitSet FOLLOW_COMMA_in_insn_format4rcc_method5584 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
15674	public static final BitSet FOLLOW_method_prototype_in_insn_format4rcc_method5586 = new BitSet(new long[]{0x0000000000000002L});
15675	public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l5620 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
15676	public static final BitSet FOLLOW_REGISTER_in_insn_format51l5622 = new BitSet(new long[]{0x0000000000100000L});
15677	public static final BitSet FOLLOW_COMMA_in_insn_format51l5624 = new BitSet(new long[]{0x000000C000C04C00L,0x0000000000000000L,0x4102400000000000L});
15678	public static final BitSet FOLLOW_fixed_literal_in_insn_format51l5626 = new BitSet(new long[]{0x0000000000000002L});
15679	public static final BitSet FOLLOW_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5653 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0102000000000000L});
15680	public static final BitSet FOLLOW_parsed_integer_literal_in_insn_array_data_directive5659 = new BitSet(new long[]{0x000000C002C04C00L,0x0000000000000000L,0x4102400000000000L});
15681	public static final BitSet FOLLOW_fixed_literal_in_insn_array_data_directive5671 = new BitSet(new long[]{0x000000C002C04C00L,0x0000000000000000L,0x4102400000000000L});
15682	public static final BitSet FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5674 = new BitSet(new long[]{0x0000000000000002L});
15683	public static final BitSet FOLLOW_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5720 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x4102400000000000L});
15684	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive5726 = new BitSet(new long[]{0x0000000020080000L});
15685	public static final BitSet FOLLOW_label_ref_in_insn_packed_switch_directive5732 = new BitSet(new long[]{0x0000000020080000L});
15686	public static final BitSet FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5739 = new BitSet(new long[]{0x0000000000000002L});
15687	public static final BitSet FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5813 = new BitSet(new long[]{0x000000C080004C00L,0x0000000000000000L,0x4102400000000000L});
15688	public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_sparse_switch_directive5820 = new BitSet(new long[]{0x0000000000000200L});
15689	public static final BitSet FOLLOW_ARROW_in_insn_sparse_switch_directive5822 = new BitSet(new long[]{0x0000000000080000L});
15690	public static final BitSet FOLLOW_label_ref_in_insn_sparse_switch_directive5824 = new BitSet(new long[]{0x000000C080004C00L,0x0000000000000000L,0x4102400000000000L});
15691	public static final BitSet FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5832 = new BitSet(new long[]{0x0000000000000002L});
15692}
15693