// $ANTLR 3.2 Sep 23, 2009 14:05:07 org/jf/smali/smaliParser.g 2011-02-10 14:15:52 package org.jf.smali; import java.util.ArrayList; import java.util.List; import java.util.Stack; import org.antlr.runtime.BaseRecognizer; import org.antlr.runtime.BitSet; import org.antlr.runtime.CommonToken; import org.antlr.runtime.DFA; import org.antlr.runtime.EarlyExitException; import org.antlr.runtime.FailedPredicateException; import org.antlr.runtime.IntStream; import org.antlr.runtime.MismatchedSetException; import org.antlr.runtime.NoViableAltException; import org.antlr.runtime.Parser; import org.antlr.runtime.ParserRuleReturnScope; import org.antlr.runtime.RecognitionException; import org.antlr.runtime.RecognizerSharedState; import org.antlr.runtime.RuleReturnScope; import org.antlr.runtime.Token; import org.antlr.runtime.TokenStream; import org.antlr.runtime.tree.CommonTree; import org.antlr.runtime.tree.CommonTreeAdaptor; import org.antlr.runtime.tree.RewriteRuleSubtreeStream; import org.antlr.runtime.tree.RewriteRuleTokenStream; import org.antlr.runtime.tree.TreeAdaptor; import org.jf.dexlib.Code.Format.Format; public class smaliParser extends Parser { public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "CLASS_DIRECTIVE", "SUPER_DIRECTIVE", "IMPLEMENTS_DIRECTIVE", "SOURCE_DIRECTIVE", "FIELD_DIRECTIVE", "END_FIELD_DIRECTIVE", "SUBANNOTATION_DIRECTIVE", "END_SUBANNOTATION_DIRECTIVE", "ANNOTATION_DIRECTIVE", "END_ANNOTATION_DIRECTIVE", "ENUM_DIRECTIVE", "METHOD_DIRECTIVE", "END_METHOD_DIRECTIVE", "REGISTERS_DIRECTIVE", "LOCALS_DIRECTIVE", "ARRAY_DATA_DIRECTIVE", "END_ARRAY_DATA_DIRECTIVE", "PACKED_SWITCH_DIRECTIVE", "END_PACKED_SWITCH_DIRECTIVE", "SPARSE_SWITCH_DIRECTIVE", "END_SPARSE_SWITCH_DIRECTIVE", "CATCH_DIRECTIVE", "CATCHALL_DIRECTIVE", "LINE_DIRECTIVE", "PARAMETER_DIRECTIVE", "END_PARAMETER_DIRECTIVE", "LOCAL_DIRECTIVE", "END_LOCAL_DIRECTIVE", "RESTART_LOCAL_DIRECTIVE", "PROLOGUE_DIRECTIVE", "EPILOGUE_DIRECTIVE", "HEX_PREFIX", "HEX_DIGIT", "BASE_INTEGER", "DECIMAL_EXPONENT", "BINARY_EXPONENT", "HEX_DIGITS", "BASE_FLOAT_OR_ID", "BASE_FLOAT", "ESCAPE_SEQUENCE", "POSITIVE_INTEGER_LITERAL", "NEGATIVE_INTEGER_LITERAL", "LONG_LITERAL", "SHORT_LITERAL", "BYTE_LITERAL", "FLOAT_LITERAL_OR_ID", "DOUBLE_LITERAL_OR_ID", "FLOAT_LITERAL", "DOUBLE_LITERAL", "BOOL_LITERAL", "NULL_LITERAL", "BASE_STRING_LITERAL", "STRING_LITERAL", "BASE_CHAR_LITERAL", "CHAR_LITERAL", "REGISTER", "ANNOTATION_VISIBILITY", "ACCESS_SPEC", "VTABLE_OFFSET", "FIELD_OFFSET", "OFFSET", "LINE_COMMENT", "INSTRUCTION_FORMAT10t", "INSTRUCTION_FORMAT10x", "INSTRUCTION_FORMAT11n", "INSTRUCTION_FORMAT11x", "INSTRUCTION_FORMAT12x_OR_ID", "INSTRUCTION_FORMAT12x", "INSTRUCTION_FORMAT20t", "INSTRUCTION_FORMAT21c_FIELD", "INSTRUCTION_FORMAT21c_STRING", "INSTRUCTION_FORMAT21c_TYPE", "INSTRUCTION_FORMAT21h", "INSTRUCTION_FORMAT21s", "INSTRUCTION_FORMAT21t", "INSTRUCTION_FORMAT22b", "INSTRUCTION_FORMAT22c_FIELD", "INSTRUCTION_FORMAT22c_TYPE", "INSTRUCTION_FORMAT22cs_FIELD", "INSTRUCTION_FORMAT22s_OR_ID", "INSTRUCTION_FORMAT22s", "INSTRUCTION_FORMAT22t", "INSTRUCTION_FORMAT22x", "INSTRUCTION_FORMAT23x", "INSTRUCTION_FORMAT30t", "INSTRUCTION_FORMAT31c", "INSTRUCTION_FORMAT31i_OR_ID", "INSTRUCTION_FORMAT31i", "INSTRUCTION_FORMAT31t", "INSTRUCTION_FORMAT32x", "INSTRUCTION_FORMAT35c_METHOD", "INSTRUCTION_FORMAT35c_TYPE", "INSTRUCTION_FORMAT35s_METHOD", "INSTRUCTION_FORMAT35ms_METHOD", "INSTRUCTION_FORMAT3rc_METHOD", "INSTRUCTION_FORMAT3rc_TYPE", "INSTRUCTION_FORMAT3rms_METHOD", "INSTRUCTION_FORMAT51l", "BASE_SIMPLE_NAME", "BASE_PRIMITIVE_TYPE", "BASE_CLASS_DESCRIPTOR", "BASE_ARRAY_DESCRIPTOR", "BASE_TYPE", "PRIMITIVE_TYPE", "VOID_TYPE", "CLASS_DESCRIPTOR", "ARRAY_DESCRIPTOR", "PARAM_LIST_OR_ID", "PARAM_LIST", "SIMPLE_NAME", "METHOD_NAME", "DOTDOT", "ARROW", "EQUAL", "COLON", "COMMA", "OPEN_BRACE", "CLOSE_BRACE", "OPEN_PAREN", "CLOSE_PAREN", "WHITE_SPACE", "I_CLASS_DEF", "I_SUPER", "I_IMPLEMENTS", "I_SOURCE", "I_ACCESS_LIST", "I_METHODS", "I_FIELDS", "I_FIELD", "I_FIELD_TYPE", "I_FIELD_INITIAL_VALUE", "I_METHOD", "I_METHOD_PROTOTYPE", "I_METHOD_RETURN_TYPE", "I_REGISTERS", "I_LOCALS", "I_LABELS", "I_LABEL", "I_ANNOTATIONS", "I_ANNOTATION", "I_ANNOTATION_ELEMENT", "I_SUBANNOTATION", "I_ENCODED_FIELD", "I_ENCODED_METHOD", "I_ENCODED_ENUM", "I_ENCODED_ARRAY", "I_ARRAY_ELEMENT_SIZE", "I_ARRAY_ELEMENTS", "I_PACKED_SWITCH_START_KEY", "I_PACKED_SWITCH_TARGET_COUNT", "I_PACKED_SWITCH_TARGETS", "I_PACKED_SWITCH_DECLARATION", "I_PACKED_SWITCH_DECLARATIONS", "I_SPARSE_SWITCH_KEYS", "I_SPARSE_SWITCH_TARGET_COUNT", "I_SPARSE_SWITCH_TARGETS", "I_SPARSE_SWITCH_DECLARATION", "I_SPARSE_SWITCH_DECLARATIONS", "I_ADDRESS", "I_CATCH", "I_CATCHALL", "I_CATCHES", "I_PARAMETER", "I_PARAMETERS", "I_PARAMETER_NOT_SPECIFIED", "I_ORDERED_DEBUG_DIRECTIVES", "I_LINE", "I_LOCAL", "I_END_LOCAL", "I_RESTART_LOCAL", "I_PROLOGUE", "I_EPILOGUE", "I_STATEMENTS", "I_STATEMENT_FORMAT10t", "I_STATEMENT_FORMAT10x", "I_STATEMENT_FORMAT11n", "I_STATEMENT_FORMAT11x", "I_STATEMENT_FORMAT12x", "I_STATEMENT_FORMAT20t", "I_STATEMENT_FORMAT21c_TYPE", "I_STATEMENT_FORMAT21c_FIELD", "I_STATEMENT_FORMAT21c_STRING", "I_STATEMENT_FORMAT21h", "I_STATEMENT_FORMAT21s", "I_STATEMENT_FORMAT21t", "I_STATEMENT_FORMAT22b", "I_STATEMENT_FORMAT22c_FIELD", "I_STATEMENT_FORMAT22c_TYPE", "I_STATEMENT_FORMAT22s", "I_STATEMENT_FORMAT22t", "I_STATEMENT_FORMAT22x", "I_STATEMENT_FORMAT23x", "I_STATEMENT_FORMAT30t", "I_STATEMENT_FORMAT31c", "I_STATEMENT_FORMAT31i", "I_STATEMENT_FORMAT31t", "I_STATEMENT_FORMAT32x", "I_STATEMENT_FORMAT35c_METHOD", "I_STATEMENT_FORMAT35c_TYPE", "I_STATEMENT_FORMAT3rc_METHOD", "I_STATEMENT_FORMAT3rc_TYPE", "I_STATEMENT_FORMAT51l", "I_STATEMENT_ARRAY_DATA", "I_STATEMENT_PACKED_SWITCH", "I_STATEMENT_SPARSE_SWITCH", "I_REGISTER_RANGE", "I_REGISTER_LIST", "LABEL", "INTEGER_LITERAL", "INVALID_TOKEN" }; public static final int I_REGISTER_LIST=210; public static final int I_STATEMENT_FORMAT51l=205; public static final int SPARSE_SWITCH_DIRECTIVE=23; public static final int END_PARAMETER_DIRECTIVE=29; public static final int I_ORDERED_DEBUG_DIRECTIVES=169; public static final int BINARY_EXPONENT=39; public static final int INSTRUCTION_FORMAT11x=69; public static final int ANNOTATION_VISIBILITY=60; public static final int INVALID_TOKEN=213; public static final int END_SUBANNOTATION_DIRECTIVE=11; public static final int HEX_PREFIX=35; public static final int EOF=-1; public static final int I_STATEMENT_FORMAT12x=181; public static final int I_METHOD=135; public static final int I_SUBANNOTATION=145; public static final int INSTRUCTION_FORMAT11n=68; public static final int I_SPARSE_SWITCH_TARGETS=159; public static final int I_PACKED_SWITCH_TARGET_COUNT=153; public static final int STRING_LITERAL=56; public static final int SHORT_LITERAL=47; public static final int I_FIELD_INITIAL_VALUE=134; public static final int INSTRUCTION_FORMAT10x=67; public static final int I_PACKED_SWITCH_DECLARATION=155; public static final int I_SUPER=126; public static final int I_STATEMENT_FORMAT11n=179; public static final int INSTRUCTION_FORMAT10t=66; public static final int NEGATIVE_INTEGER_LITERAL=45; public static final int REGISTER=59; public static final int INSTRUCTION_FORMAT21c_TYPE=75; public static final int I_STATEMENT_FORMAT11x=180; public static final int LOCAL_DIRECTIVE=30; public static final int I_LINE=170; public static final int LOCALS_DIRECTIVE=18; public static final int I_CATCHALL=164; public static final int INSTRUCTION_FORMAT35c_TYPE=95; public static final int INSTRUCTION_FORMAT31i_OR_ID=90; public static final int I_PARAMETERS=167; public static final int I_METHOD_RETURN_TYPE=137; public static final int INSTRUCTION_FORMAT51l=101; public static final int ENUM_DIRECTIVE=14; public static final int REGISTERS_DIRECTIVE=17; public static final int NULL_LITERAL=54; public static final int BASE_SIMPLE_NAME=102; public static final int END_ARRAY_DATA_DIRECTIVE=20; public static final int I_STATEMENT_FORMAT21c_FIELD=184; public static final int I_METHOD_PROTOTYPE=136; public static final int EPILOGUE_DIRECTIVE=34; public static final int I_LOCALS=139; public static final int RESTART_LOCAL_DIRECTIVE=32; public static final int I_ENCODED_ARRAY=149; public static final int POSITIVE_INTEGER_LITERAL=44; public static final int BASE_PRIMITIVE_TYPE=103; public static final int CATCH_DIRECTIVE=25; public static final int I_CATCH=163; public static final int I_PARAMETER_NOT_SPECIFIED=168; public static final int INSTRUCTION_FORMAT21h=76; public static final int I_ANNOTATION=143; public static final int INSTRUCTION_FORMAT21s=77; public static final int INSTRUCTION_FORMAT21t=78; public static final int WHITE_SPACE=124; public static final int INSTRUCTION_FORMAT22b=79; public static final int INSTRUCTION_FORMAT20t=72; public static final int OFFSET=64; public static final int FLOAT_LITERAL_OR_ID=49; public static final int I_PACKED_SWITCH_START_KEY=152; public static final int I_ACCESS_LIST=129; public static final int I_REGISTERS=138; public static final int IMPLEMENTS_DIRECTIVE=6; public static final int SOURCE_DIRECTIVE=7; public static final int CLASS_DIRECTIVE=4; public static final int BASE_CHAR_LITERAL=57; public static final int I_STATEMENT_FORMAT35c_METHOD=201; public static final int I_STATEMENT_SPARSE_SWITCH=208; public static final int BASE_STRING_LITERAL=55; public static final int INSTRUCTION_FORMAT23x=87; public static final int OPEN_PAREN=122; public static final int HEX_DIGIT=36; public static final int END_PACKED_SWITCH_DIRECTIVE=22; public static final int CLOSE_BRACE=121; public static final int I_EPILOGUE=175; public static final int LONG_LITERAL=46; public static final int I_METHODS=130; public static final int INSTRUCTION_FORMAT22c_FIELD=80; public static final int END_FIELD_DIRECTIVE=9; public static final int ACCESS_SPEC=61; public static final int I_IMPLEMENTS=127; public static final int COLON=118; public static final int I_STATEMENT_FORMAT23x=195; public static final int INSTRUCTION_FORMAT35ms_METHOD=97; public static final int CHAR_LITERAL=58; public static final int INSTRUCTION_FORMAT22s=84; public static final int VOID_TYPE=108; public static final int INSTRUCTION_FORMAT22t=85; public static final int CLASS_DESCRIPTOR=109; public static final int ARROW=116; public static final int INSTRUCTION_FORMAT22x=86; public static final int VTABLE_OFFSET=62; public static final int INSTRUCTION_FORMAT12x=71; public static final int I_LOCAL=171; public static final int I_REGISTER_RANGE=209; public static final int INSTRUCTION_FORMAT32x=93; public static final int I_STATEMENT_FORMAT22b=189; public static final int ANNOTATION_DIRECTIVE=12; public static final int END_ANNOTATION_DIRECTIVE=13; public static final int I_SPARSE_SWITCH_TARGET_COUNT=158; public static final int DOUBLE_LITERAL=52; public static final int I_STATEMENT_FORMAT22s=192; public static final int I_STATEMENT_FORMAT22t=193; public static final int I_STATEMENT_FORMAT32x=200; public static final int END_LOCAL_DIRECTIVE=31; public static final int BASE_FLOAT_OR_ID=41; public static final int BASE_INTEGER=37; public static final int I_STATEMENT_FORMAT22x=194; public static final int I_STATEMENT_FORMAT21c_STRING=185; public static final int INSTRUCTION_FORMAT12x_OR_ID=70; public static final int I_STATEMENT_FORMAT31c=197; public static final int I_STATEMENT_FORMAT31i=198; public static final int INSTRUCTION_FORMAT35s_METHOD=96; public static final int I_STATEMENT_FORMAT21h=186; public static final int I_ANNOTATIONS=142; public static final int PRIMITIVE_TYPE=107; public static final int CATCHALL_DIRECTIVE=26; public static final int I_STATEMENT_FORMAT21s=187; public static final int DOUBLE_LITERAL_OR_ID=50; public static final int I_STATEMENT_FORMAT31t=199; public static final int I_SOURCE=128; public static final int CLOSE_PAREN=123; public static final int I_SPARSE_SWITCH_DECLARATIONS=161; public static final int ARRAY_DESCRIPTOR=110; public static final int I_ADDRESS=162; public static final int I_STATEMENT_FORMAT21t=188; public static final int I_STATEMENTS=176; public static final int SUBANNOTATION_DIRECTIVE=10; public static final int INSTRUCTION_FORMAT31c=89; public static final int LINE_COMMENT=65; public static final int I_PARAMETER=166; public static final int I_ARRAY_ELEMENTS=151; public static final int I_SPARSE_SWITCH_DECLARATION=160; public static final int INSTRUCTION_FORMAT30t=88; public static final int BOOL_LITERAL=53; public static final int I_STATEMENT_FORMAT21c_TYPE=183; public static final int I_STATEMENT_FORMAT20t=182; public static final int I_STATEMENT_FORMAT3rc_TYPE=204; public static final int BASE_FLOAT=42; public static final int METHOD_NAME=114; public static final int I_ANNOTATION_ELEMENT=144; public static final int PACKED_SWITCH_DIRECTIVE=21; public static final int PARAMETER_DIRECTIVE=28; public static final int ARRAY_DATA_DIRECTIVE=19; public static final int DECIMAL_EXPONENT=38; public static final int INTEGER_LITERAL=212; public static final int PROLOGUE_DIRECTIVE=33; public static final int I_SPARSE_SWITCH_KEYS=157; public static final int INSTRUCTION_FORMAT31t=92; public static final int I_RESTART_LOCAL=173; public static final int INSTRUCTION_FORMAT31i=91; public static final int METHOD_DIRECTIVE=15; public static final int I_ENCODED_FIELD=146; public static final int INSTRUCTION_FORMAT22c_TYPE=81; public static final int INSTRUCTION_FORMAT35c_METHOD=94; public static final int I_END_LOCAL=172; public static final int INSTRUCTION_FORMAT3rc_METHOD=98; public static final int BASE_ARRAY_DESCRIPTOR=105; public static final int INSTRUCTION_FORMAT22s_OR_ID=83; public static final int I_CATCHES=165; public static final int SUPER_DIRECTIVE=5; public static final int DOTDOT=115; public static final int END_SPARSE_SWITCH_DIRECTIVE=24; public static final int I_ENCODED_METHOD=147; public static final int INSTRUCTION_FORMAT21c_FIELD=73; public static final int I_ARRAY_ELEMENT_SIZE=150; public static final int I_FIELDS=131; public static final int I_LABELS=140; public static final int ESCAPE_SEQUENCE=43; public static final int I_STATEMENT_FORMAT35c_TYPE=202; public static final int BYTE_LITERAL=48; public static final int COMMA=119; public static final int I_CLASS_DEF=125; public static final int EQUAL=117; public static final int PARAM_LIST_OR_ID=111; public static final int I_FIELD=132; public static final int I_STATEMENT_PACKED_SWITCH=207; public static final int I_STATEMENT_FORMAT22c_FIELD=190; public static final int FIELD_OFFSET=63; public static final int FIELD_DIRECTIVE=8; public static final int INSTRUCTION_FORMAT3rc_TYPE=99; public static final int I_STATEMENT_FORMAT10x=178; public static final int I_LABEL=141; public static final int I_STATEMENT_ARRAY_DATA=206; public static final int END_METHOD_DIRECTIVE=16; public static final int I_STATEMENT_FORMAT10t=177; public static final int I_PROLOGUE=174; public static final int I_ENCODED_ENUM=148; public static final int I_PACKED_SWITCH_DECLARATIONS=156; public static final int I_STATEMENT_FORMAT30t=196; public static final int I_FIELD_TYPE=133; public static final int FLOAT_LITERAL=51; public static final int INSTRUCTION_FORMAT21c_STRING=74; public static final int SIMPLE_NAME=113; public static final int PARAM_LIST=112; public static final int I_PACKED_SWITCH_TARGETS=154; public static final int BASE_CLASS_DESCRIPTOR=104; public static final int LINE_DIRECTIVE=27; public static final int INSTRUCTION_FORMAT22cs_FIELD=82; public static final int LABEL=211; public static final int BASE_TYPE=106; public static final int I_STATEMENT_FORMAT3rc_METHOD=203; public static final int HEX_DIGITS=40; public static final int INSTRUCTION_FORMAT3rms_METHOD=100; public static final int OPEN_BRACE=120; public static final int I_STATEMENT_FORMAT22c_TYPE=191; // delegates // delegators public smaliParser(TokenStream input) { this(input, new RecognizerSharedState()); } public smaliParser(TokenStream input, RecognizerSharedState state) { super(input, state); } protected TreeAdaptor adaptor = new CommonTreeAdaptor(); public void setTreeAdaptor(TreeAdaptor adaptor) { this.adaptor = adaptor; } public TreeAdaptor getTreeAdaptor() { return adaptor; } public String[] getTokenNames() { return smaliParser.tokenNames; } public String getGrammarFileName() { return "org/jf/smali/smaliParser.g"; } private boolean verboseErrors = false; public void setVerboseErrors(boolean verboseErrors) { this.verboseErrors = verboseErrors; } public String getErrorMessage(RecognitionException e, String[] tokenNames) { if (verboseErrors) { List<?> stack = getRuleInvocationStack(e, this.getClass().getName()); String msg = null; if (e instanceof NoViableAltException) { NoViableAltException nvae = (NoViableAltException)e; msg = " no viable alt; token="+getTokenErrorDisplay(e.token)+ " (decision="+nvae.decisionNumber+ " state "+nvae.stateNumber+")"+ " decision=<<"+nvae.grammarDecisionDescription+">>"; } else { msg = super.getErrorMessage(e, tokenNames); } return stack + " " + msg; } else { return super.getErrorMessage(e, tokenNames); } } public String getTokenErrorDisplay(Token t) { if (!verboseErrors) { String s = t.getText(); if ( s==null ) { if ( t.getType()==Token.EOF ) { s = "<EOF>"; } else { s = "<"+tokenNames[t.getType()]+">"; } } s = s.replaceAll("\n","\\\\n"); s = s.replaceAll("\r","\\\\r"); s = s.replaceAll("\t","\\\\t"); return "'"+s+"'"; } CommonToken ct = (CommonToken)t; String channelStr = ""; if (t.getChannel()>0) { channelStr=",channel="+t.getChannel(); } String txt = t.getText(); if ( txt!=null ) { txt = txt.replaceAll("\n","\\\\n"); txt = txt.replaceAll("\r","\\\\r"); txt = txt.replaceAll("\t","\\\\t"); } else { txt = "<no text>"; } return "[@"+t.getTokenIndex()+","+ct.getStartIndex()+":"+ct.getStopIndex()+"='"+txt+"',<"+tokenNames[t.getType()]+">"+channelStr+","+t.getLine()+":"+t.getCharPositionInLine()+"]"; } public String getErrorHeader(RecognitionException e) { return getSourceName()+"["+ e.line+","+e.charPositionInLine+"]"; } private CommonTree buildTree(int type, String text, List<CommonTree> children) { CommonTree root = new CommonTree(new CommonToken(type, text)); for (CommonTree child: children) { root.addChild(child); } return root; } private CommonToken getParamListSubToken(CommonToken baseToken, String str, int typeStartIndex) { CommonToken token = new CommonToken(baseToken); token.setStartIndex(baseToken.getStartIndex() + typeStartIndex); if (str.charAt(typeStartIndex)=='Z'||str.charAt(typeStartIndex)=='B'||str.charAt(typeStartIndex)=='S'||str.charAt(typeStartIndex)=='C'||str.charAt(typeStartIndex)=='I'||str.charAt(typeStartIndex)=='J'||str.charAt(typeStartIndex)=='F'||str.charAt(typeStartIndex)=='D') { token.setType(PRIMITIVE_TYPE); token.setText(str.substring(typeStartIndex, typeStartIndex+1)); token.setStopIndex(baseToken.getStartIndex() + typeStartIndex); } else if (str.charAt(typeStartIndex)=='L'){ int i = typeStartIndex; while (str.charAt(++i) != ';'); token.setType(CLASS_DESCRIPTOR); token.setText(str.substring(typeStartIndex, i + 1)); token.setStopIndex(baseToken.getStartIndex() + i); } else if (str.charAt(typeStartIndex)=='['){ int i = typeStartIndex; while (str.charAt(++i) == '['); if (str.charAt(i++) == 'L') { while (str.charAt(i++) != ';'); } token.setType(ARRAY_DESCRIPTOR); token.setText(str.substring(typeStartIndex, i)); token.setStopIndex(baseToken.getStartIndex() + i - 1); } else {throw new RuntimeException(String.format("Invalid character '%c' in param list \"%s\" at position %d", str.charAt(typeStartIndex), str, typeStartIndex));} return token; } private CommonTree parseParamList(CommonToken paramListToken) { String paramList = paramListToken.getText(); CommonTree root = new CommonTree(); paramListToken.getStartIndex(); int i=0; while (i<paramList.length()) { CommonToken token = getParamListSubToken(paramListToken, paramList, i); root.addChild(new CommonTree(token)); i += token.getText().length(); } if (root.getChildCount() == 0) { return null; } return root; } private void throwOdexedInstructionException(IntStream input, String odexedInstruction) throws OdexedInstructionException { /*this has to be done in a separate method, otherwise java will complain about the auto-generated code in the rule after the throw not being reachable*/ throw new OdexedInstructionException(input, odexedInstruction); } protected static class smali_file_scope { boolean hasClassSpec; boolean hasSuperSpec; boolean hasSourceSpec; List<CommonTree> classAnnotations; } protected Stack<smali_file_scope> smali_file_stack = new Stack<smali_file_scope>(); public static class smali_file_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "smali_file" // org/jf/smali/smaliParser.g:293: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 )* ) ) ; public final smaliParser.smali_file_return smali_file() throws RecognitionException { smali_file_stack.push(new smali_file_scope()); smaliParser.smali_file_return retval = new smaliParser.smali_file_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token EOF8=null; smaliParser.class_spec_return class_spec1 = null; smaliParser.super_spec_return super_spec2 = null; smaliParser.implements_spec_return implements_spec3 = null; smaliParser.source_spec_return source_spec4 = null; smaliParser.method_return method5 = null; smaliParser.field_return field6 = null; smaliParser.annotation_return annotation7 = null; RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF"); RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field"); RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation"); RewriteRuleSubtreeStream stream_super_spec=new RewriteRuleSubtreeStream(adaptor,"rule super_spec"); RewriteRuleSubtreeStream stream_implements_spec=new RewriteRuleSubtreeStream(adaptor,"rule implements_spec"); RewriteRuleSubtreeStream stream_source_spec=new RewriteRuleSubtreeStream(adaptor,"rule source_spec"); RewriteRuleSubtreeStream stream_method=new RewriteRuleSubtreeStream(adaptor,"rule method"); RewriteRuleSubtreeStream stream_class_spec=new RewriteRuleSubtreeStream(adaptor,"rule class_spec"); ((smali_file_scope)smali_file_stack.peek()).hasClassSpec = ((smali_file_scope)smali_file_stack.peek()).hasSuperSpec = ((smali_file_scope)smali_file_stack.peek()).hasSourceSpec = false; ((smali_file_scope)smali_file_stack.peek()).classAnnotations = new ArrayList<CommonTree>(); try { // org/jf/smali/smaliParser.g:305:2: ( ({...}? => 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 )* ) ) ) // org/jf/smali/smaliParser.g:306:2: ({...}? => class_spec | {...}? => super_spec | implements_spec | {...}? => source_spec | method | field | annotation )+ EOF { // org/jf/smali/smaliParser.g:306:2: ({...}? => class_spec | {...}? => super_spec | implements_spec | {...}? => source_spec | method | field | annotation )+ int cnt1=0; loop1: do { int alt1=8; int LA1_0 = input.LA(1); if ( (LA1_0==CLASS_DIRECTIVE) && ((!((smali_file_scope)smali_file_stack.peek()).hasClassSpec))) { alt1=1; } else if ( (LA1_0==SUPER_DIRECTIVE) && ((!((smali_file_scope)smali_file_stack.peek()).hasSuperSpec))) { alt1=2; } else if ( (LA1_0==IMPLEMENTS_DIRECTIVE) ) { alt1=3; } else if ( (LA1_0==SOURCE_DIRECTIVE) && ((!((smali_file_scope)smali_file_stack.peek()).hasSourceSpec))) { alt1=4; } else if ( (LA1_0==METHOD_DIRECTIVE) ) { alt1=5; } else if ( (LA1_0==FIELD_DIRECTIVE) ) { alt1=6; } else if ( (LA1_0==ANNOTATION_DIRECTIVE) ) { alt1=7; } //switch (alt1) { if (alt1==1) // org/jf/smali/smaliParser.g:306:4: {...}? => class_spec { if ( !((!((smali_file_scope)smali_file_stack.peek()).hasClassSpec)) ) { throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasClassSpec"); } pushFollow(FOLLOW_class_spec_in_smali_file436); class_spec1=class_spec(); state._fsp--; stream_class_spec.add(class_spec1.getTree()); ((smali_file_scope)smali_file_stack.peek()).hasClassSpec = true; } else if(alt1==2) // org/jf/smali/smaliParser.g:307:4: {...}? => super_spec { if ( !((!((smali_file_scope)smali_file_stack.peek()).hasSuperSpec)) ) { throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasSuperSpec"); } pushFollow(FOLLOW_super_spec_in_smali_file446); super_spec2=super_spec(); state._fsp--; stream_super_spec.add(super_spec2.getTree()); ((smali_file_scope)smali_file_stack.peek()).hasSuperSpec = true; } else if(alt1== 3) // org/jf/smali/smaliParser.g:308:4: implements_spec { pushFollow(FOLLOW_implements_spec_in_smali_file453); implements_spec3=implements_spec(); state._fsp--; stream_implements_spec.add(implements_spec3.getTree()); } else if(alt1==4) // org/jf/smali/smaliParser.g:309:4: {...}? => source_spec { if ( !((!((smali_file_scope)smali_file_stack.peek()).hasSourceSpec)) ) { throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasSourceSpec"); } pushFollow(FOLLOW_source_spec_in_smali_file461); source_spec4=source_spec(); state._fsp--; stream_source_spec.add(source_spec4.getTree()); ((smali_file_scope)smali_file_stack.peek()).hasSourceSpec = true; } else if(alt1== 5 ) // org/jf/smali/smaliParser.g:310:4: method { pushFollow(FOLLOW_method_in_smali_file468); method5=method(); state._fsp--; stream_method.add(method5.getTree()); } else if(alt1==6 ) // org/jf/smali/smaliParser.g:311:4: field { pushFollow(FOLLOW_field_in_smali_file473); field6=field(); state._fsp--; stream_field.add(field6.getTree()); } else if(alt1==7) // org/jf/smali/smaliParser.g:312:4: annotation { pushFollow(FOLLOW_annotation_in_smali_file478); annotation7=annotation(); state._fsp--; stream_annotation.add(annotation7.getTree()); ((smali_file_scope)smali_file_stack.peek()).classAnnotations.add((annotation7!=null?((CommonTree)annotation7.tree):null)); } else { if ( cnt1 >= 1 ) break loop1; EarlyExitException eee = new EarlyExitException(1, input); throw eee; } cnt1++; } while (true); EOF8=(Token)match(input,EOF,FOLLOW_EOF_in_smali_file487); stream_EOF.add(EOF8); if (!((smali_file_scope)smali_file_stack.peek()).hasClassSpec) { throw new SemanticException(input, "The file must contain a .class directive"); } if (!((smali_file_scope)smali_file_stack.peek()).hasSuperSpec) { if (!(class_spec1!=null?class_spec1.className:null).equals("Ljava/lang/Object;")) { throw new SemanticException(input, "The file must contain a .super directive"); } } // AST REWRITE // elements: class_spec, field, source_spec, method, super_spec, implements_spec // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 326:2: -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) { // org/jf/smali/smaliParser.g:326:5: ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CLASS_DEF, "I_CLASS_DEF"), root_1); adaptor.addChild(root_1, stream_class_spec.nextTree()); // org/jf/smali/smaliParser.g:328:4: ( super_spec )? if ( stream_super_spec.hasNext() ) { adaptor.addChild(root_1, stream_super_spec.nextTree()); } stream_super_spec.reset(); // org/jf/smali/smaliParser.g:329:4: ( implements_spec )* while ( stream_implements_spec.hasNext() ) { adaptor.addChild(root_1, stream_implements_spec.nextTree()); } stream_implements_spec.reset(); // org/jf/smali/smaliParser.g:330:4: ( source_spec )? if ( stream_source_spec.hasNext() ) { adaptor.addChild(root_1, stream_source_spec.nextTree()); } stream_source_spec.reset(); // org/jf/smali/smaliParser.g:331:4: ^( I_METHODS ( method )* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHODS, "I_METHODS"), root_2); // org/jf/smali/smaliParser.g:331:16: ( method )* while ( stream_method.hasNext() ) { adaptor.addChild(root_2, stream_method.nextTree()); } stream_method.reset(); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:331:25: ^( I_FIELDS ( field )* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELDS, "I_FIELDS"), root_2); // org/jf/smali/smaliParser.g:331:36: ( field )* while ( stream_field.hasNext() ) { adaptor.addChild(root_2, stream_field.nextTree()); } stream_field.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_1, buildTree(I_ANNOTATIONS, "I_ANNOTATIONS", ((smali_file_scope)smali_file_stack.peek()).classAnnotations)); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { smali_file_stack.pop(); } return retval; } // $ANTLR end "smali_file" public static class class_spec_return extends ParserRuleReturnScope { public String className; CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "class_spec" // org/jf/smali/smaliParser.g:333:1: class_spec returns [String className] : CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR -> CLASS_DESCRIPTOR access_list ; public final smaliParser.class_spec_return class_spec() throws RecognitionException { smaliParser.class_spec_return retval = new smaliParser.class_spec_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token CLASS_DIRECTIVE9=null; Token CLASS_DESCRIPTOR11=null; smaliParser.access_list_return access_list10 = null; RewriteRuleTokenStream stream_CLASS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CLASS_DIRECTIVE"); RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list"); try { // org/jf/smali/smaliParser.g:334:2: ( CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR -> CLASS_DESCRIPTOR access_list ) // org/jf/smali/smaliParser.g:334:4: CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR { CLASS_DIRECTIVE9=(Token)match(input,CLASS_DIRECTIVE,FOLLOW_CLASS_DIRECTIVE_in_class_spec551); stream_CLASS_DIRECTIVE.add(CLASS_DIRECTIVE9); pushFollow(FOLLOW_access_list_in_class_spec553); access_list10=access_list(); state._fsp--; stream_access_list.add(access_list10.getTree()); CLASS_DESCRIPTOR11=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_class_spec555); stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR11); retval.className = (CLASS_DESCRIPTOR11!=null?CLASS_DESCRIPTOR11.getText():null); // AST REWRITE // elements: CLASS_DESCRIPTOR, access_list // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 334:88: -> CLASS_DESCRIPTOR access_list { adaptor.addChild(root_0, stream_CLASS_DESCRIPTOR.nextNode()); adaptor.addChild(root_0, stream_access_list.nextTree()); } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "class_spec" public static class super_spec_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "super_spec" // org/jf/smali/smaliParser.g:336:1: super_spec : SUPER_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) ; public final smaliParser.super_spec_return super_spec() throws RecognitionException { smaliParser.super_spec_return retval = new smaliParser.super_spec_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SUPER_DIRECTIVE12=null; Token CLASS_DESCRIPTOR13=null; RewriteRuleTokenStream stream_SUPER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SUPER_DIRECTIVE"); RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); try { // org/jf/smali/smaliParser.g:337:2: ( SUPER_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) ) // org/jf/smali/smaliParser.g:337:4: SUPER_DIRECTIVE CLASS_DESCRIPTOR { SUPER_DIRECTIVE12=(Token)match(input,SUPER_DIRECTIVE,FOLLOW_SUPER_DIRECTIVE_in_super_spec572); stream_SUPER_DIRECTIVE.add(SUPER_DIRECTIVE12); CLASS_DESCRIPTOR13=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_super_spec574); stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR13); // AST REWRITE // elements: CLASS_DESCRIPTOR // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 337:37: -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) { // org/jf/smali/smaliParser.g:337:40: ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUPER, ((Token)retval.start), "I_SUPER"), root_1); adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "super_spec" public static class implements_spec_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "implements_spec" // org/jf/smali/smaliParser.g:339:1: implements_spec : IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) ; public final smaliParser.implements_spec_return implements_spec() throws RecognitionException { smaliParser.implements_spec_return retval = new smaliParser.implements_spec_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token IMPLEMENTS_DIRECTIVE14=null; Token CLASS_DESCRIPTOR15=null; RewriteRuleTokenStream stream_IMPLEMENTS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token IMPLEMENTS_DIRECTIVE"); RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); try { // org/jf/smali/smaliParser.g:340:2: ( IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) ) // org/jf/smali/smaliParser.g:340:4: IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR { IMPLEMENTS_DIRECTIVE14=(Token)match(input,IMPLEMENTS_DIRECTIVE,FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec592); stream_IMPLEMENTS_DIRECTIVE.add(IMPLEMENTS_DIRECTIVE14); CLASS_DESCRIPTOR15=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_implements_spec594); stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR15); // AST REWRITE // elements: CLASS_DESCRIPTOR // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 340:42: -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) { // org/jf/smali/smaliParser.g:340:45: ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_IMPLEMENTS, ((Token)retval.start), "I_IMPLEMENTS"), root_1); adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "implements_spec" public static class source_spec_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "source_spec" // org/jf/smali/smaliParser.g:342:1: source_spec : SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) ; public final smaliParser.source_spec_return source_spec() throws RecognitionException { smaliParser.source_spec_return retval = new smaliParser.source_spec_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SOURCE_DIRECTIVE16=null; Token STRING_LITERAL17=null; RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_SOURCE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SOURCE_DIRECTIVE"); try { // org/jf/smali/smaliParser.g:343:2: ( SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) ) // org/jf/smali/smaliParser.g:343:4: SOURCE_DIRECTIVE STRING_LITERAL { SOURCE_DIRECTIVE16=(Token)match(input,SOURCE_DIRECTIVE,FOLLOW_SOURCE_DIRECTIVE_in_source_spec612); stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE16); STRING_LITERAL17=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_source_spec614); stream_STRING_LITERAL.add(STRING_LITERAL17); // AST REWRITE // elements: STRING_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 343:36: -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) { // org/jf/smali/smaliParser.g:343:39: ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SOURCE, ((Token)retval.start), "I_SOURCE"), root_1); adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "source_spec" public static class access_list_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "access_list" // org/jf/smali/smaliParser.g:345:1: access_list : ( ACCESS_SPEC )* -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) ; public final smaliParser.access_list_return access_list() throws RecognitionException { smaliParser.access_list_return retval = new smaliParser.access_list_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ACCESS_SPEC18=null; RewriteRuleTokenStream stream_ACCESS_SPEC=new RewriteRuleTokenStream(adaptor,"token ACCESS_SPEC"); try { // org/jf/smali/smaliParser.g:346:2: ( ( ACCESS_SPEC )* -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) ) // org/jf/smali/smaliParser.g:346:4: ( ACCESS_SPEC )* { // org/jf/smali/smaliParser.g:346:4: ( ACCESS_SPEC )* loop2: do { int alt2=2; if(input.LA(1)==ACCESS_SPEC ) { if (input.LA(2)==POSITIVE_INTEGER_LITERAL||input.LA(2)==NEGATIVE_INTEGER_LITERAL||input.LA(2)==FLOAT_LITERAL_OR_ID||input.LA(2)==DOUBLE_LITERAL_OR_ID||input.LA(2)==BOOL_LITERAL||input.LA(2)==NULL_LITERAL||input.LA(2)==REGISTER||input.LA(2)==ANNOTATION_VISIBILITY||input.LA(2)==ACCESS_SPEC||input.LA(2)==INSTRUCTION_FORMAT10t||input.LA(2)==INSTRUCTION_FORMAT10x||input.LA(2)==INSTRUCTION_FORMAT11x||input.LA(2)==INSTRUCTION_FORMAT12x_OR_ID||input.LA(2)==INSTRUCTION_FORMAT21c_FIELD||input.LA(2)==INSTRUCTION_FORMAT21c_STRING||input.LA(2)==INSTRUCTION_FORMAT21c_TYPE||input.LA(2)==INSTRUCTION_FORMAT21t||input.LA(2)==INSTRUCTION_FORMAT22c_FIELD||input.LA(2)==INSTRUCTION_FORMAT22c_TYPE ||input.LA(2)==INSTRUCTION_FORMAT22cs_FIELD ||input.LA(2)==INSTRUCTION_FORMAT22s_OR_ID ||input.LA(2)==INSTRUCTION_FORMAT22t ||input.LA(2)==INSTRUCTION_FORMAT23x ||input.LA(2)==INSTRUCTION_FORMAT31i_OR_ID ||input.LA(2)==INSTRUCTION_FORMAT31t ||input.LA(2)==INSTRUCTION_FORMAT35c_METHOD ||input.LA(2)==INSTRUCTION_FORMAT35c_TYPE ||input.LA(2)==INSTRUCTION_FORMAT35s_METHOD ||input.LA(2)==INSTRUCTION_FORMAT35ms_METHOD ||input.LA(2)==INSTRUCTION_FORMAT51l ||input.LA(2)==PRIMITIVE_TYPE ||input.LA(2)==VOID_TYPE ||input.LA(2)==CLASS_DESCRIPTOR ||input.LA(2)==PARAM_LIST_OR_ID ||input.LA(2)==SIMPLE_NAME ||input.LA(2)==METHOD_NAME){ alt2=1; } break; } if(alt2==1) { // org/jf/smali/smaliParser.g:346:4: ACCESS_SPEC ACCESS_SPEC18=(Token)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_access_list632); stream_ACCESS_SPEC.add(ACCESS_SPEC18); } else { break loop2; } } while (true); // AST REWRITE // elements: ACCESS_SPEC // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 346:17: -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) { // org/jf/smali/smaliParser.g:346:20: ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ACCESS_LIST, ((Token)retval.start), "I_ACCESS_LIST"), root_1); // org/jf/smali/smaliParser.g:346:60: ( ACCESS_SPEC )* while ( stream_ACCESS_SPEC.hasNext() ) { adaptor.addChild(root_1, stream_ACCESS_SPEC.nextNode()); } stream_ACCESS_SPEC.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "access_list" public static class field_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "field" // org/jf/smali/smaliParser.g:353:1: field : FIELD_DIRECTIVE access_list simple_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) ; public final smaliParser.field_return field() throws RecognitionException { smaliParser.field_return retval = new smaliParser.field_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token FIELD_DIRECTIVE19=null; Token COLON22=null; Token EQUAL24=null; Token END_FIELD_DIRECTIVE27=null; smaliParser.access_list_return access_list20 = null; smaliParser.simple_name_return simple_name21 = null; smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor23 = null; smaliParser.literal_return literal25 = null; smaliParser.annotation_return annotation26 = null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleTokenStream stream_FIELD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token FIELD_DIRECTIVE"); RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL"); RewriteRuleTokenStream stream_END_FIELD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_FIELD_DIRECTIVE"); RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation"); RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list"); RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal"); List<CommonTree> annotations = new ArrayList<CommonTree>(); try { // org/jf/smali/smaliParser.g:355:2: ( FIELD_DIRECTIVE access_list simple_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) ) // org/jf/smali/smaliParser.g:355:4: FIELD_DIRECTIVE access_list simple_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) { FIELD_DIRECTIVE19=(Token)match(input,FIELD_DIRECTIVE,FOLLOW_FIELD_DIRECTIVE_in_field661); stream_FIELD_DIRECTIVE.add(FIELD_DIRECTIVE19); pushFollow(FOLLOW_access_list_in_field663); access_list20=access_list(); state._fsp--; stream_access_list.add(access_list20.getTree()); pushFollow(FOLLOW_simple_name_in_field665); simple_name21=simple_name(); state._fsp--; stream_simple_name.add(simple_name21.getTree()); COLON22=(Token)match(input,COLON,FOLLOW_COLON_in_field667); stream_COLON.add(COLON22); pushFollow(FOLLOW_nonvoid_type_descriptor_in_field669); nonvoid_type_descriptor23=nonvoid_type_descriptor(); state._fsp--; stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor23.getTree()); // org/jf/smali/smaliParser.g:355:74: ( EQUAL literal )? int alt3=2; if(input.LA(1)==EQUAL) { alt3=1; } if(alt3==1) { // org/jf/smali/smaliParser.g:355:75: EQUAL literal EQUAL24=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_field672); stream_EQUAL.add(EQUAL24); pushFollow(FOLLOW_literal_in_field674); literal25=literal(); state._fsp--; stream_literal.add(literal25.getTree()); } // org/jf/smali/smaliParser.g:356:3: ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) // org/jf/smali/smaliParser.g:356:5: ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) { // org/jf/smali/smaliParser.g:356:5: ({...}? annotation )* loop4: do { int alt4=2; alt4 = dfa4.predict(input); if(alt4==1) { // org/jf/smali/smaliParser.g:356:6: {...}? annotation if ( !((input.LA(1) == ANNOTATION_DIRECTIVE)) ) { throw new FailedPredicateException(input, "field", "input.LA(1) == ANNOTATION_DIRECTIVE"); } pushFollow(FOLLOW_annotation_in_field685); annotation26=annotation(); state._fsp--; stream_annotation.add(annotation26.getTree()); annotations.add((annotation26!=null?((CommonTree)annotation26.tree):null)); } else { break loop4; } } while (true); // org/jf/smali/smaliParser.g:357:4: ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) int alt5=2; if(input.LA(1)== END_FIELD_DIRECTIVE) { alt5=1; } else if(input.LA(1)==EOF ||input.LA(1)==CLASS_DIRECTIVE ||input.LA(1)==SUPER_DIRECTIVE ||input.LA(1)==IMPLEMENTS_DIRECTIVE ||input.LA(1)==SOURCE_DIRECTIVE ||input.LA(1)==FIELD_DIRECTIVE ||input.LA(1)==ANNOTATION_DIRECTIVE ||input.LA(1)==METHOD_DIRECTIVE){ alt5=2; } else { NoViableAltException nvae =new NoViableAltException("", 5, 0, input); throw nvae; } if(alt5==1) { // org/jf/smali/smaliParser.g:357:6: END_FIELD_DIRECTIVE END_FIELD_DIRECTIVE27=(Token)match(input,END_FIELD_DIRECTIVE,FOLLOW_END_FIELD_DIRECTIVE_in_field696); stream_END_FIELD_DIRECTIVE.add(END_FIELD_DIRECTIVE27); // AST REWRITE // elements: access_list, simple_name, literal, nonvoid_type_descriptor, annotation // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 358:5: -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) { // org/jf/smali/smaliParser.g:358:8: ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD, ((Token)retval.start), "I_FIELD"), root_1); adaptor.addChild(root_1, stream_simple_name.nextTree()); adaptor.addChild(root_1, stream_access_list.nextTree()); // org/jf/smali/smaliParser.g:358:61: ^( I_FIELD_TYPE nonvoid_type_descriptor ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_TYPE, "I_FIELD_TYPE"), root_2); adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree()); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:358:101: ( ^( I_FIELD_INITIAL_VALUE literal ) )? if ( stream_literal.hasNext() ) { // org/jf/smali/smaliParser.g:358:101: ^( I_FIELD_INITIAL_VALUE literal ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_INITIAL_VALUE, "I_FIELD_INITIAL_VALUE"), root_2); adaptor.addChild(root_2, stream_literal.nextTree()); adaptor.addChild(root_1, root_2); } } stream_literal.reset(); // org/jf/smali/smaliParser.g:358:135: ^( I_ANNOTATIONS ( annotation )* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2); // org/jf/smali/smaliParser.g:358:151: ( annotation )* while ( stream_annotation.hasNext() ) { adaptor.addChild(root_2, stream_annotation.nextTree()); } stream_annotation.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } else if(alt5==2) { // org/jf/smali/smaliParser.g:359:18: ((smali_file_scope)smali_file_stack.peek()).classAnnotations.addAll(annotations); // AST REWRITE // elements: simple_name, literal, nonvoid_type_descriptor, access_list // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 360:5: -> ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) { // org/jf/smali/smaliParser.g:360:8: ^( I_FIELD[$start, \"I_FIELD\"] simple_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD, ((Token)retval.start), "I_FIELD"), root_1); adaptor.addChild(root_1, stream_simple_name.nextTree()); adaptor.addChild(root_1, stream_access_list.nextTree()); // org/jf/smali/smaliParser.g:360:61: ^( I_FIELD_TYPE nonvoid_type_descriptor ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_TYPE, "I_FIELD_TYPE"), root_2); adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree()); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:360:101: ( ^( I_FIELD_INITIAL_VALUE literal ) )? if ( stream_literal.hasNext() ) { // org/jf/smali/smaliParser.g:360:101: ^( I_FIELD_INITIAL_VALUE literal ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_INITIAL_VALUE, "I_FIELD_INITIAL_VALUE"), root_2); adaptor.addChild(root_2, stream_literal.nextTree()); adaptor.addChild(root_1, root_2); } } stream_literal.reset(); // org/jf/smali/smaliParser.g:360:135: ^( I_ANNOTATIONS ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } } } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "field" protected static class method_scope { int currentAddress; } protected Stack<method_scope> method_stack = new Stack<method_scope>(); public static class method_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "method" // org/jf/smali/smaliParser.g:364:1: method : METHOD_DIRECTIVE access_list method_name method_prototype statements_and_directives END_METHOD_DIRECTIVE -> ^( I_METHOD[$start, \"I_METHOD\"] method_name method_prototype access_list statements_and_directives ) ; public final smaliParser.method_return method() throws RecognitionException { method_stack.push(new method_scope()); smaliParser.method_return retval = new smaliParser.method_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token METHOD_DIRECTIVE28=null; Token END_METHOD_DIRECTIVE33=null; smaliParser.access_list_return access_list29 = null; smaliParser.method_name_return method_name30 = null; smaliParser.method_prototype_return method_prototype31 = null; smaliParser.statements_and_directives_return statements_and_directives32 = null; RewriteRuleTokenStream stream_END_METHOD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_METHOD_DIRECTIVE"); RewriteRuleTokenStream stream_METHOD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token METHOD_DIRECTIVE"); RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list"); RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype"); RewriteRuleSubtreeStream stream_statements_and_directives=new RewriteRuleSubtreeStream(adaptor,"rule statements_and_directives"); RewriteRuleSubtreeStream stream_method_name=new RewriteRuleSubtreeStream(adaptor,"rule method_name"); try { // org/jf/smali/smaliParser.g:366:2: ( METHOD_DIRECTIVE access_list method_name method_prototype statements_and_directives END_METHOD_DIRECTIVE -> ^( I_METHOD[$start, \"I_METHOD\"] method_name method_prototype access_list statements_and_directives ) ) // org/jf/smali/smaliParser.g:366:4: METHOD_DIRECTIVE access_list method_name method_prototype statements_and_directives END_METHOD_DIRECTIVE { ((method_scope)method_stack.peek()).currentAddress = 0; METHOD_DIRECTIVE28=(Token)match(input,METHOD_DIRECTIVE,FOLLOW_METHOD_DIRECTIVE_in_method799); stream_METHOD_DIRECTIVE.add(METHOD_DIRECTIVE28); pushFollow(FOLLOW_access_list_in_method801); access_list29=access_list(); state._fsp--; stream_access_list.add(access_list29.getTree()); pushFollow(FOLLOW_method_name_in_method803); method_name30=method_name(); state._fsp--; stream_method_name.add(method_name30.getTree()); pushFollow(FOLLOW_method_prototype_in_method805); method_prototype31=method_prototype(); state._fsp--; stream_method_prototype.add(method_prototype31.getTree()); pushFollow(FOLLOW_statements_and_directives_in_method807); statements_and_directives32=statements_and_directives(); state._fsp--; stream_statements_and_directives.add(statements_and_directives32.getTree()); END_METHOD_DIRECTIVE33=(Token)match(input,END_METHOD_DIRECTIVE,FOLLOW_END_METHOD_DIRECTIVE_in_method811); stream_END_METHOD_DIRECTIVE.add(END_METHOD_DIRECTIVE33); // AST REWRITE // elements: method_name, method_prototype, statements_and_directives, access_list // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 369:3: -> ^( I_METHOD[$start, \"I_METHOD\"] method_name method_prototype access_list statements_and_directives ) { // org/jf/smali/smaliParser.g:369:6: ^( I_METHOD[$start, \"I_METHOD\"] method_name method_prototype access_list statements_and_directives ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD, ((Token)retval.start), "I_METHOD"), root_1); adaptor.addChild(root_1, stream_method_name.nextTree()); adaptor.addChild(root_1, stream_method_prototype.nextTree()); adaptor.addChild(root_1, stream_access_list.nextTree()); adaptor.addChild(root_1, stream_statements_and_directives.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { method_stack.pop(); } return retval; } // $ANTLR end "method" protected static class statements_and_directives_scope { boolean hasRegistersDirective; List<CommonTree> packedSwitchDeclarations; List<CommonTree> sparseSwitchDeclarations; List<CommonTree> methodAnnotations; } protected Stack<statements_and_directives_scope> statements_and_directives_stack = new Stack<statements_and_directives_scope>(); public static class statements_and_directives_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "statements_and_directives" // org/jf/smali/smaliParser.g:371:1: statements_and_directives : ( instruction | registers_directive | label | catch_directive | catchall_directive | parameter_directive | ordered_debug_directive | annotation )* -> ( registers_directive )? ^( I_LABELS ( label )* ) ^( I_STATEMENTS ( instruction )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) ^( I_ORDERED_DEBUG_DIRECTIVES ( ordered_debug_directive )* ) ; public final smaliParser.statements_and_directives_return statements_and_directives() throws RecognitionException { statements_and_directives_stack.push(new statements_and_directives_scope()); smaliParser.statements_and_directives_return retval = new smaliParser.statements_and_directives_return(); retval.start = input.LT(1); CommonTree root_0 = null; smaliParser.instruction_return instruction34 = null; smaliParser.registers_directive_return registers_directive35 = null; smaliParser.label_return label36 = null; smaliParser.catch_directive_return catch_directive37 = null; smaliParser.catchall_directive_return catchall_directive38 = null; smaliParser.parameter_directive_return parameter_directive39 = null; smaliParser.ordered_debug_directive_return ordered_debug_directive40 = null; smaliParser.annotation_return annotation41 = null; RewriteRuleSubtreeStream stream_catchall_directive=new RewriteRuleSubtreeStream(adaptor,"rule catchall_directive"); RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation"); RewriteRuleSubtreeStream stream_catch_directive=new RewriteRuleSubtreeStream(adaptor,"rule catch_directive"); RewriteRuleSubtreeStream stream_registers_directive=new RewriteRuleSubtreeStream(adaptor,"rule registers_directive"); RewriteRuleSubtreeStream stream_ordered_debug_directive=new RewriteRuleSubtreeStream(adaptor,"rule ordered_debug_directive"); RewriteRuleSubtreeStream stream_instruction=new RewriteRuleSubtreeStream(adaptor,"rule instruction"); RewriteRuleSubtreeStream stream_label=new RewriteRuleSubtreeStream(adaptor,"rule label"); RewriteRuleSubtreeStream stream_parameter_directive=new RewriteRuleSubtreeStream(adaptor,"rule parameter_directive"); try { // org/jf/smali/smaliParser.g:379:2: ( ( instruction | registers_directive | label | catch_directive | catchall_directive | parameter_directive | ordered_debug_directive | annotation )* -> ( registers_directive )? ^( I_LABELS ( label )* ) ^( I_STATEMENTS ( instruction )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) ^( I_ORDERED_DEBUG_DIRECTIVES ( ordered_debug_directive )* ) ) // org/jf/smali/smaliParser.g:379:4: ( instruction | registers_directive | label | catch_directive | catchall_directive | parameter_directive | ordered_debug_directive | annotation )* { ((method_scope)method_stack.peek()).currentAddress = 0; ((statements_and_directives_scope)statements_and_directives_stack.peek()).hasRegistersDirective = false; ((statements_and_directives_scope)statements_and_directives_stack.peek()).packedSwitchDeclarations = new ArrayList<CommonTree>(); ((statements_and_directives_scope)statements_and_directives_stack.peek()).sparseSwitchDeclarations = new ArrayList<CommonTree>(); ((statements_and_directives_scope)statements_and_directives_stack.peek()).methodAnnotations = new ArrayList<CommonTree>(); // org/jf/smali/smaliParser.g:386:3: ( instruction | registers_directive | label | catch_directive | catchall_directive | parameter_directive | ordered_debug_directive | annotation )* loop6: do { int alt6=9; if( input.LA(1)==ARRAY_DATA_DIRECTIVE ||input.LA(1)==PACKED_SWITCH_DIRECTIVE ||input.LA(1)== SPARSE_SWITCH_DIRECTIVE ||input.LA(1)== INSTRUCTION_FORMAT10t ||input.LA(1)== INSTRUCTION_FORMAT10x ||input.LA(1)== INSTRUCTION_FORMAT11n ||input.LA(1)== INSTRUCTION_FORMAT11x ||input.LA(1)== INSTRUCTION_FORMAT12x_OR_ID ||input.LA(1)== INSTRUCTION_FORMAT12x ||input.LA(1)== INSTRUCTION_FORMAT20t ||input.LA(1)== INSTRUCTION_FORMAT21c_FIELD ||input.LA(1)== INSTRUCTION_FORMAT21c_STRING ||input.LA(1)== INSTRUCTION_FORMAT21c_TYPE ||input.LA(1)== INSTRUCTION_FORMAT21h ||input.LA(1)== INSTRUCTION_FORMAT21s ||input.LA(1)== INSTRUCTION_FORMAT21t ||input.LA(1)== INSTRUCTION_FORMAT22b ||input.LA(1)== INSTRUCTION_FORMAT22c_FIELD ||input.LA(1)== INSTRUCTION_FORMAT22c_TYPE ||input.LA(1)== INSTRUCTION_FORMAT22cs_FIELD ||input.LA(1)== INSTRUCTION_FORMAT22s_OR_ID ||input.LA(1)== INSTRUCTION_FORMAT22s ||input.LA(1)== INSTRUCTION_FORMAT22t ||input.LA(1)== INSTRUCTION_FORMAT22x ||input.LA(1)== INSTRUCTION_FORMAT23x ||input.LA(1)== INSTRUCTION_FORMAT30t ||input.LA(1)== INSTRUCTION_FORMAT31c ||input.LA(1)== INSTRUCTION_FORMAT31i_OR_ID ||input.LA(1)== INSTRUCTION_FORMAT31i ||input.LA(1)== INSTRUCTION_FORMAT31t ||input.LA(1)== INSTRUCTION_FORMAT32x ||input.LA(1)== INSTRUCTION_FORMAT35c_METHOD ||input.LA(1)== INSTRUCTION_FORMAT35c_TYPE ||input.LA(1)== INSTRUCTION_FORMAT35s_METHOD ||input.LA(1)== INSTRUCTION_FORMAT35ms_METHOD ||input.LA(1)== INSTRUCTION_FORMAT3rc_METHOD ||input.LA(1)== INSTRUCTION_FORMAT3rc_TYPE ||input.LA(1)== INSTRUCTION_FORMAT3rms_METHOD ||input.LA(1)== INSTRUCTION_FORMAT51l){ alt6=1; } else if (input.LA(1)==REGISTERS_DIRECTIVE ||input.LA(1)==LOCALS_DIRECTIVE){ alt6=2; } else if (input.LA(1)==COLON) { alt6=3; } else if (input.LA(1)==CATCH_DIRECTIVE) { alt6=4; } else if (input.LA(1)==CATCHALL_DIRECTIVE) { alt6=5; } else if (input.LA(1)==PARAMETER_DIRECTIVE) { alt6=6; } else if (input.LA(1)==SOURCE_DIRECTIVE ||input.LA(1)==LINE_DIRECTIVE ||input.LA(1)==LOCAL_DIRECTIVE ||input.LA(1)==END_LOCAL_DIRECTIVE ||input.LA(1)==RESTART_LOCAL_DIRECTIVE ||input.LA(1)==PROLOGUE_DIRECTIVE ||input.LA(1)==EPILOGUE_DIRECTIVE) { alt6=7; } else if (input.LA(1)==ANNOTATION_DIRECTIVE) { alt6=8; } switch (alt6) { case 1 : // org/jf/smali/smaliParser.g:386:5: instruction { pushFollow(FOLLOW_instruction_in_statements_and_directives849); instruction34=instruction(); state._fsp--; stream_instruction.add(instruction34.getTree()); ((method_scope)method_stack.peek()).currentAddress += (instruction34!=null?instruction34.size:0)/2; } break; case 2 : // org/jf/smali/smaliParser.g:387:5: registers_directive { pushFollow(FOLLOW_registers_directive_in_statements_and_directives857); registers_directive35=registers_directive(); state._fsp--; stream_registers_directive.add(registers_directive35.getTree()); } break; case 3 : // org/jf/smali/smaliParser.g:388:5: label { pushFollow(FOLLOW_label_in_statements_and_directives863); label36=label(); state._fsp--; stream_label.add(label36.getTree()); } break; case 4 : // org/jf/smali/smaliParser.g:389:5: catch_directive { pushFollow(FOLLOW_catch_directive_in_statements_and_directives869); catch_directive37=catch_directive(); state._fsp--; stream_catch_directive.add(catch_directive37.getTree()); } break; case 5 : // org/jf/smali/smaliParser.g:390:5: catchall_directive { pushFollow(FOLLOW_catchall_directive_in_statements_and_directives875); catchall_directive38=catchall_directive(); state._fsp--; stream_catchall_directive.add(catchall_directive38.getTree()); } break; case 6 : // org/jf/smali/smaliParser.g:391:5: parameter_directive { pushFollow(FOLLOW_parameter_directive_in_statements_and_directives881); parameter_directive39=parameter_directive(); state._fsp--; stream_parameter_directive.add(parameter_directive39.getTree()); } break; case 7 : // org/jf/smali/smaliParser.g:392:5: ordered_debug_directive { pushFollow(FOLLOW_ordered_debug_directive_in_statements_and_directives887); ordered_debug_directive40=ordered_debug_directive(); state._fsp--; stream_ordered_debug_directive.add(ordered_debug_directive40.getTree()); } break; case 8 : // org/jf/smali/smaliParser.g:393:5: annotation { pushFollow(FOLLOW_annotation_in_statements_and_directives893); annotation41=annotation(); state._fsp--; stream_annotation.add(annotation41.getTree()); ((statements_and_directives_scope)statements_and_directives_stack.peek()).methodAnnotations.add((annotation41!=null?((CommonTree)annotation41.tree):null)); } break; default : break loop6; } } while (true); // AST REWRITE // elements: ordered_debug_directive, catch_directive, label, parameter_directive, instruction, catchall_directive, registers_directive // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 395:3: -> ( registers_directive )? ^( I_LABELS ( label )* ) ^( I_STATEMENTS ( instruction )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) ^( I_ORDERED_DEBUG_DIRECTIVES ( ordered_debug_directive )* ) { // org/jf/smali/smaliParser.g:395:6: ( registers_directive )? if ( stream_registers_directive.hasNext() ) { adaptor.addChild(root_0, stream_registers_directive.nextTree()); } stream_registers_directive.reset(); // org/jf/smali/smaliParser.g:396:4: ^( I_LABELS ( label )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LABELS, "I_LABELS"), root_1); // org/jf/smali/smaliParser.g:396:15: ( label )* while ( stream_label.hasNext() ) { adaptor.addChild(root_1, stream_label.nextTree()); } stream_label.reset(); adaptor.addChild(root_0, root_1); } adaptor.addChild(root_0, buildTree(I_PACKED_SWITCH_DECLARATIONS, "I_PACKED_SWITCH_DECLARATIONS", ((statements_and_directives_scope)statements_and_directives_stack.peek()).packedSwitchDeclarations)); adaptor.addChild(root_0, buildTree(I_SPARSE_SWITCH_DECLARATIONS, "I_SPARSE_SWITCH_DECLARATIONS", ((statements_and_directives_scope)statements_and_directives_stack.peek()).sparseSwitchDeclarations)); // org/jf/smali/smaliParser.g:399:4: ^( I_STATEMENTS ( instruction )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENTS, "I_STATEMENTS"), root_1); // org/jf/smali/smaliParser.g:399:19: ( instruction )* while ( stream_instruction.hasNext() ) { adaptor.addChild(root_1, stream_instruction.nextTree()); } stream_instruction.reset(); adaptor.addChild(root_0, root_1); } // org/jf/smali/smaliParser.g:400:4: ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCHES, "I_CATCHES"), root_1); // org/jf/smali/smaliParser.g:400:16: ( catch_directive )* while ( stream_catch_directive.hasNext() ) { adaptor.addChild(root_1, stream_catch_directive.nextTree()); } stream_catch_directive.reset(); // org/jf/smali/smaliParser.g:400:33: ( catchall_directive )* while ( stream_catchall_directive.hasNext() ) { adaptor.addChild(root_1, stream_catchall_directive.nextTree()); } stream_catchall_directive.reset(); adaptor.addChild(root_0, root_1); } // org/jf/smali/smaliParser.g:401:4: ^( I_PARAMETERS ( parameter_directive )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETERS, "I_PARAMETERS"), root_1); // org/jf/smali/smaliParser.g:401:19: ( parameter_directive )* while ( stream_parameter_directive.hasNext() ) { adaptor.addChild(root_1, stream_parameter_directive.nextTree()); } stream_parameter_directive.reset(); adaptor.addChild(root_0, root_1); } // org/jf/smali/smaliParser.g:402:4: ^( I_ORDERED_DEBUG_DIRECTIVES ( ordered_debug_directive )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ORDERED_DEBUG_DIRECTIVES, "I_ORDERED_DEBUG_DIRECTIVES"), root_1); // org/jf/smali/smaliParser.g:402:33: ( ordered_debug_directive )* while ( stream_ordered_debug_directive.hasNext() ) { adaptor.addChild(root_1, stream_ordered_debug_directive.nextTree()); } stream_ordered_debug_directive.reset(); adaptor.addChild(root_0, root_1); } adaptor.addChild(root_0, buildTree(I_ANNOTATIONS, "I_ANNOTATIONS", ((statements_and_directives_scope)statements_and_directives_stack.peek()).methodAnnotations)); } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { statements_and_directives_stack.pop(); } return retval; } // $ANTLR end "statements_and_directives" public static class registers_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "registers_directive" // org/jf/smali/smaliParser.g:405: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) ) ; public final smaliParser.registers_directive_return registers_directive() throws RecognitionException { smaliParser.registers_directive_return retval = new smaliParser.registers_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token directive=null; smaliParser.integral_literal_return regCount = null; smaliParser.integral_literal_return regCount2 = null; RewriteRuleTokenStream stream_REGISTERS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token REGISTERS_DIRECTIVE"); RewriteRuleTokenStream stream_LOCALS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LOCALS_DIRECTIVE"); RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal"); try { // org/jf/smali/smaliParser.g:406:2: ( (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) ) ) // org/jf/smali/smaliParser.g:406:4: (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) ) { // org/jf/smali/smaliParser.g:406:4: (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) ) int alt7=2; switch ( input.LA(1) ) { case REGISTERS_DIRECTIVE: { alt7=1; } break; case LOCALS_DIRECTIVE: { alt7=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 7, 0, input); throw nvae; } switch (alt7) { case 1 : // org/jf/smali/smaliParser.g:407:4: directive= REGISTERS_DIRECTIVE regCount= integral_literal { directive=(Token)match(input,REGISTERS_DIRECTIVE,FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive992); stream_REGISTERS_DIRECTIVE.add(directive); pushFollow(FOLLOW_integral_literal_in_registers_directive996); regCount=integral_literal(); state._fsp--; stream_integral_literal.add(regCount.getTree()); // AST REWRITE // elements: regCount // token labels: // rule labels: retval, regCount // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_regCount=new RewriteRuleSubtreeStream(adaptor,"rule regCount",regCount!=null?regCount.tree:null); root_0 = (CommonTree)adaptor.nil(); // 407:60: -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) { // org/jf/smali/smaliParser.g:407:63: ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTERS, directive, "I_REGISTERS"), root_1); adaptor.addChild(root_1, stream_regCount.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:408:5: directive= LOCALS_DIRECTIVE regCount2= integral_literal { directive=(Token)match(input,LOCALS_DIRECTIVE,FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1014); stream_LOCALS_DIRECTIVE.add(directive); pushFollow(FOLLOW_integral_literal_in_registers_directive1018); regCount2=integral_literal(); state._fsp--; stream_integral_literal.add(regCount2.getTree()); // AST REWRITE // elements: regCount2 // token labels: // rule labels: retval, regCount2 // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_regCount2=new RewriteRuleSubtreeStream(adaptor,"rule regCount2",regCount2!=null?regCount2.tree:null); root_0 = (CommonTree)adaptor.nil(); // 408:59: -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) { // org/jf/smali/smaliParser.g:408:62: ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LOCALS, directive, "I_LOCALS"), root_1); adaptor.addChild(root_1, stream_regCount2.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } if (((statements_and_directives_scope)statements_and_directives_stack.peek()).hasRegistersDirective) { throw new SemanticException(input, directive, "There can only be a single .registers or .locals directive in a method"); } ((statements_and_directives_scope)statements_and_directives_stack.peek()).hasRegistersDirective =true; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "registers_directive" public static class simple_name_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "simple_name" // org/jf/smali/smaliParser.g:419:1: simple_name : ( SIMPLE_NAME | ACCESS_SPEC -> SIMPLE_NAME[$ACCESS_SPEC] | 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 -> SIMPLE_NAME[$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_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_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_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_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] | INSTRUCTION_FORMAT35s_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35s_METHOD] | INSTRUCTION_FORMAT35ms_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] | INSTRUCTION_FORMAT51l -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] ); public final smaliParser.simple_name_return simple_name() throws RecognitionException { smaliParser.simple_name_return retval = new smaliParser.simple_name_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SIMPLE_NAME42=null; Token ACCESS_SPEC43=null; Token POSITIVE_INTEGER_LITERAL44=null; Token NEGATIVE_INTEGER_LITERAL45=null; Token FLOAT_LITERAL_OR_ID46=null; Token DOUBLE_LITERAL_OR_ID47=null; Token BOOL_LITERAL48=null; Token NULL_LITERAL49=null; Token REGISTER50=null; Token PARAM_LIST_OR_ID51=null; Token PRIMITIVE_TYPE52=null; Token VOID_TYPE53=null; Token ANNOTATION_VISIBILITY54=null; Token INSTRUCTION_FORMAT10t55=null; Token INSTRUCTION_FORMAT10x56=null; Token INSTRUCTION_FORMAT11x57=null; Token INSTRUCTION_FORMAT12x_OR_ID58=null; Token INSTRUCTION_FORMAT21c_FIELD59=null; Token INSTRUCTION_FORMAT21c_STRING60=null; Token INSTRUCTION_FORMAT21c_TYPE61=null; Token INSTRUCTION_FORMAT21t62=null; Token INSTRUCTION_FORMAT22c_FIELD63=null; Token INSTRUCTION_FORMAT22c_TYPE64=null; Token INSTRUCTION_FORMAT22cs_FIELD65=null; Token INSTRUCTION_FORMAT22s_OR_ID66=null; Token INSTRUCTION_FORMAT22t67=null; Token INSTRUCTION_FORMAT23x68=null; Token INSTRUCTION_FORMAT31i_OR_ID69=null; Token INSTRUCTION_FORMAT31t70=null; Token INSTRUCTION_FORMAT35c_METHOD71=null; Token INSTRUCTION_FORMAT35c_TYPE72=null; Token INSTRUCTION_FORMAT35s_METHOD73=null; Token INSTRUCTION_FORMAT35ms_METHOD74=null; Token INSTRUCTION_FORMAT51l75=null; CommonTree SIMPLE_NAME42_tree=null; RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_TYPE"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11x"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21t"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_TYPE"); RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_VISIBILITY"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31i_OR_ID"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22s_OR_ID"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT51l"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT23x"); RewriteRuleTokenStream stream_NULL_LITERAL=new RewriteRuleTokenStream(adaptor,"token NULL_LITERAL"); RewriteRuleTokenStream stream_BOOL_LITERAL=new RewriteRuleTokenStream(adaptor,"token BOOL_LITERAL"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD"); RewriteRuleTokenStream stream_ACCESS_SPEC=new RewriteRuleTokenStream(adaptor,"token ACCESS_SPEC"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_STRING"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT12x_OR_ID"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35ms_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35ms_METHOD"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35s_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35s_METHOD"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22cs_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22cs_FIELD"); RewriteRuleTokenStream stream_VOID_TYPE=new RewriteRuleTokenStream(adaptor,"token VOID_TYPE"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x"); RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token FLOAT_LITERAL_OR_ID"); RewriteRuleTokenStream stream_PRIMITIVE_TYPE=new RewriteRuleTokenStream(adaptor,"token PRIMITIVE_TYPE"); RewriteRuleTokenStream stream_PARAM_LIST_OR_ID=new RewriteRuleTokenStream(adaptor,"token PARAM_LIST_OR_ID"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22t"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31t"); RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token DOUBLE_LITERAL_OR_ID"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10t"); RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token NEGATIVE_INTEGER_LITERAL"); RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_TYPE"); RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token POSITIVE_INTEGER_LITERAL"); try { // org/jf/smali/smaliParser.g:420:2: ( SIMPLE_NAME | ACCESS_SPEC -> SIMPLE_NAME[$ACCESS_SPEC] | 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 -> SIMPLE_NAME[$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_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_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_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_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] | INSTRUCTION_FORMAT35s_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35s_METHOD] | INSTRUCTION_FORMAT35ms_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] | INSTRUCTION_FORMAT51l -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] ) int alt8=34; switch ( input.LA(1) ) { case SIMPLE_NAME: { alt8=1; } break; case ACCESS_SPEC: { alt8=2; } break; case POSITIVE_INTEGER_LITERAL: { alt8=3; } break; case NEGATIVE_INTEGER_LITERAL: { alt8=4; } break; case FLOAT_LITERAL_OR_ID: { alt8=5; } break; case DOUBLE_LITERAL_OR_ID: { alt8=6; } break; case BOOL_LITERAL: { alt8=7; } break; case NULL_LITERAL: { alt8=8; } break; case REGISTER: { alt8=9; } break; case PARAM_LIST_OR_ID: { alt8=10; } break; case PRIMITIVE_TYPE: { alt8=11; } break; case VOID_TYPE: { alt8=12; } break; case ANNOTATION_VISIBILITY: { alt8=13; } break; case INSTRUCTION_FORMAT10t: { alt8=14; } break; case INSTRUCTION_FORMAT10x: { alt8=15; } break; case INSTRUCTION_FORMAT11x: { alt8=16; } break; case INSTRUCTION_FORMAT12x_OR_ID: { alt8=17; } break; case INSTRUCTION_FORMAT21c_FIELD: { alt8=18; } break; case INSTRUCTION_FORMAT21c_STRING: { alt8=19; } break; case INSTRUCTION_FORMAT21c_TYPE: { alt8=20; } break; case INSTRUCTION_FORMAT21t: { alt8=21; } break; case INSTRUCTION_FORMAT22c_FIELD: { alt8=22; } break; case INSTRUCTION_FORMAT22c_TYPE: { alt8=23; } break; case INSTRUCTION_FORMAT22cs_FIELD: { alt8=24; } break; case INSTRUCTION_FORMAT22s_OR_ID: { alt8=25; } break; case INSTRUCTION_FORMAT22t: { alt8=26; } break; case INSTRUCTION_FORMAT23x: { alt8=27; } break; case INSTRUCTION_FORMAT31i_OR_ID: { alt8=28; } break; case INSTRUCTION_FORMAT31t: { alt8=29; } break; case INSTRUCTION_FORMAT35c_METHOD: { alt8=30; } break; case INSTRUCTION_FORMAT35c_TYPE: { alt8=31; } break; case INSTRUCTION_FORMAT35s_METHOD: { alt8=32; } break; case INSTRUCTION_FORMAT35ms_METHOD: { alt8=33; } break; case INSTRUCTION_FORMAT51l: { alt8=34; } break; default: NoViableAltException nvae = new NoViableAltException("", 8, 0, input); throw nvae; } switch (alt8) { case 1 : // org/jf/smali/smaliParser.g:420:4: SIMPLE_NAME { root_0 = (CommonTree)adaptor.nil(); SIMPLE_NAME42=(Token)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_simple_name1047); SIMPLE_NAME42_tree = (CommonTree)adaptor.create(SIMPLE_NAME42); adaptor.addChild(root_0, SIMPLE_NAME42_tree); } break; case 2 : // org/jf/smali/smaliParser.g:421:4: ACCESS_SPEC { ACCESS_SPEC43=(Token)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_simple_name1052); stream_ACCESS_SPEC.add(ACCESS_SPEC43); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 421:16: -> SIMPLE_NAME[$ACCESS_SPEC] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, ACCESS_SPEC43)); } retval.tree = root_0; } break; case 3 : // org/jf/smali/smaliParser.g:422:4: POSITIVE_INTEGER_LITERAL { POSITIVE_INTEGER_LITERAL44=(Token)match(input,POSITIVE_INTEGER_LITERAL,FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1062); stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL44); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 422:29: -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, POSITIVE_INTEGER_LITERAL44)); } retval.tree = root_0; } break; case 4 : // org/jf/smali/smaliParser.g:423:4: NEGATIVE_INTEGER_LITERAL { NEGATIVE_INTEGER_LITERAL45=(Token)match(input,NEGATIVE_INTEGER_LITERAL,FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1072); stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL45); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 423:29: -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, NEGATIVE_INTEGER_LITERAL45)); } retval.tree = root_0; } break; case 5 : // org/jf/smali/smaliParser.g:424:4: FLOAT_LITERAL_OR_ID { FLOAT_LITERAL_OR_ID46=(Token)match(input,FLOAT_LITERAL_OR_ID,FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1082); stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID46); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 424:24: -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, FLOAT_LITERAL_OR_ID46)); } retval.tree = root_0; } break; case 6 : // org/jf/smali/smaliParser.g:425:4: DOUBLE_LITERAL_OR_ID { DOUBLE_LITERAL_OR_ID47=(Token)match(input,DOUBLE_LITERAL_OR_ID,FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1092); stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID47); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 425:25: -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, DOUBLE_LITERAL_OR_ID47)); } retval.tree = root_0; } break; case 7 : // org/jf/smali/smaliParser.g:426:4: BOOL_LITERAL { BOOL_LITERAL48=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_simple_name1102); stream_BOOL_LITERAL.add(BOOL_LITERAL48); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 426:17: -> SIMPLE_NAME[$BOOL_LITERAL] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, BOOL_LITERAL48)); } retval.tree = root_0; } break; case 8 : // org/jf/smali/smaliParser.g:427:4: NULL_LITERAL { NULL_LITERAL49=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_simple_name1112); stream_NULL_LITERAL.add(NULL_LITERAL49); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 427:17: -> SIMPLE_NAME[$NULL_LITERAL] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, NULL_LITERAL49)); } retval.tree = root_0; } break; case 9 : // org/jf/smali/smaliParser.g:428:4: REGISTER { REGISTER50=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_simple_name1122); stream_REGISTER.add(REGISTER50); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 428:13: -> SIMPLE_NAME[$REGISTER] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, REGISTER50)); } retval.tree = root_0; } break; case 10 : // org/jf/smali/smaliParser.g:429:4: PARAM_LIST_OR_ID { PARAM_LIST_OR_ID51=(Token)match(input,PARAM_LIST_OR_ID,FOLLOW_PARAM_LIST_OR_ID_in_simple_name1132); stream_PARAM_LIST_OR_ID.add(PARAM_LIST_OR_ID51); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 429:21: -> SIMPLE_NAME[$PARAM_LIST_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, PARAM_LIST_OR_ID51)); } retval.tree = root_0; } break; case 11 : // org/jf/smali/smaliParser.g:430:4: PRIMITIVE_TYPE { PRIMITIVE_TYPE52=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_simple_name1142); stream_PRIMITIVE_TYPE.add(PRIMITIVE_TYPE52); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 430:19: -> SIMPLE_NAME[$PRIMITIVE_TYPE] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, PRIMITIVE_TYPE52)); } retval.tree = root_0; } break; case 12 : // org/jf/smali/smaliParser.g:431:4: VOID_TYPE { VOID_TYPE53=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_simple_name1152); stream_VOID_TYPE.add(VOID_TYPE53); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 431:14: -> SIMPLE_NAME[$VOID_TYPE] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, VOID_TYPE53)); } retval.tree = root_0; } break; case 13 : // org/jf/smali/smaliParser.g:432:4: ANNOTATION_VISIBILITY { ANNOTATION_VISIBILITY54=(Token)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_simple_name1162); stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY54); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 432:26: -> SIMPLE_NAME[$ANNOTATION_VISIBILITY] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, ANNOTATION_VISIBILITY54)); } retval.tree = root_0; } break; case 14 : // org/jf/smali/smaliParser.g:433:4: INSTRUCTION_FORMAT10t { INSTRUCTION_FORMAT10t55=(Token)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name1172); stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t55); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 433:26: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10t55)); } retval.tree = root_0; } break; case 15 : // org/jf/smali/smaliParser.g:434:4: INSTRUCTION_FORMAT10x { INSTRUCTION_FORMAT10x56=(Token)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name1182); stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x56); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 434:26: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10x56)); } retval.tree = root_0; } break; case 16 : // org/jf/smali/smaliParser.g:435:4: INSTRUCTION_FORMAT11x { INSTRUCTION_FORMAT11x57=(Token)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name1192); stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x57); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 435:26: -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT11x57)); } retval.tree = root_0; } break; case 17 : // org/jf/smali/smaliParser.g:436:4: INSTRUCTION_FORMAT12x_OR_ID { INSTRUCTION_FORMAT12x_OR_ID58=(Token)match(input,INSTRUCTION_FORMAT12x_OR_ID,FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name1202); stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID58); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 436:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT12x_OR_ID58)); } retval.tree = root_0; } break; case 18 : // org/jf/smali/smaliParser.g:437:4: INSTRUCTION_FORMAT21c_FIELD { INSTRUCTION_FORMAT21c_FIELD59=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name1212); stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD59); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 437:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_FIELD59)); } retval.tree = root_0; } break; case 19 : // org/jf/smali/smaliParser.g:438:4: INSTRUCTION_FORMAT21c_STRING { INSTRUCTION_FORMAT21c_STRING60=(Token)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name1222); stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING60); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 438:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_STRING60)); } retval.tree = root_0; } break; case 20 : // org/jf/smali/smaliParser.g:439:4: INSTRUCTION_FORMAT21c_TYPE { INSTRUCTION_FORMAT21c_TYPE61=(Token)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name1232); stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE61); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 439:31: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_TYPE61)); } retval.tree = root_0; } break; case 21 : // org/jf/smali/smaliParser.g:440:4: INSTRUCTION_FORMAT21t { INSTRUCTION_FORMAT21t62=(Token)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name1242); stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t62); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 440:26: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21t62)); } retval.tree = root_0; } break; case 22 : // org/jf/smali/smaliParser.g:441:4: INSTRUCTION_FORMAT22c_FIELD { INSTRUCTION_FORMAT22c_FIELD63=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name1252); stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD63); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 441:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_FIELD63)); } retval.tree = root_0; } break; case 23 : // org/jf/smali/smaliParser.g:442:4: INSTRUCTION_FORMAT22c_TYPE { INSTRUCTION_FORMAT22c_TYPE64=(Token)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name1262); stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE64); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 442:31: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_TYPE64)); } retval.tree = root_0; } break; case 24 : // org/jf/smali/smaliParser.g:443:4: INSTRUCTION_FORMAT22cs_FIELD { INSTRUCTION_FORMAT22cs_FIELD65=(Token)match(input,INSTRUCTION_FORMAT22cs_FIELD,FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name1272); stream_INSTRUCTION_FORMAT22cs_FIELD.add(INSTRUCTION_FORMAT22cs_FIELD65); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 443:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22cs_FIELD65)); } retval.tree = root_0; } break; case 25 : // org/jf/smali/smaliParser.g:444:4: INSTRUCTION_FORMAT22s_OR_ID { INSTRUCTION_FORMAT22s_OR_ID66=(Token)match(input,INSTRUCTION_FORMAT22s_OR_ID,FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name1282); stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID66); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 444:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22s_OR_ID66)); } retval.tree = root_0; } break; case 26 : // org/jf/smali/smaliParser.g:445:4: INSTRUCTION_FORMAT22t { INSTRUCTION_FORMAT22t67=(Token)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name1292); stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t67); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 445:26: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22t67)); } retval.tree = root_0; } break; case 27 : // org/jf/smali/smaliParser.g:446:4: INSTRUCTION_FORMAT23x { INSTRUCTION_FORMAT23x68=(Token)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name1302); stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x68); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 446:26: -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT23x68)); } retval.tree = root_0; } break; case 28 : // org/jf/smali/smaliParser.g:447:4: INSTRUCTION_FORMAT31i_OR_ID { INSTRUCTION_FORMAT31i_OR_ID69=(Token)match(input,INSTRUCTION_FORMAT31i_OR_ID,FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name1312); stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID69); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 447:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT31i_OR_ID69)); } retval.tree = root_0; } break; case 29 : // org/jf/smali/smaliParser.g:448:4: INSTRUCTION_FORMAT31t { INSTRUCTION_FORMAT31t70=(Token)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name1322); stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t70); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 448:26: -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT31t70)); } retval.tree = root_0; } break; case 30 : // org/jf/smali/smaliParser.g:449:4: INSTRUCTION_FORMAT35c_METHOD { INSTRUCTION_FORMAT35c_METHOD71=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name1332); stream_INSTRUCTION_FORMAT35c_METHOD.add(INSTRUCTION_FORMAT35c_METHOD71); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 449:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_METHOD71)); } retval.tree = root_0; } break; case 31 : // org/jf/smali/smaliParser.g:450:4: INSTRUCTION_FORMAT35c_TYPE { INSTRUCTION_FORMAT35c_TYPE72=(Token)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name1342); stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE72); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 450:31: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_TYPE72)); } retval.tree = root_0; } break; case 32 : // org/jf/smali/smaliParser.g:451:4: INSTRUCTION_FORMAT35s_METHOD { INSTRUCTION_FORMAT35s_METHOD73=(Token)match(input,INSTRUCTION_FORMAT35s_METHOD,FOLLOW_INSTRUCTION_FORMAT35s_METHOD_in_simple_name1352); stream_INSTRUCTION_FORMAT35s_METHOD.add(INSTRUCTION_FORMAT35s_METHOD73); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 451:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35s_METHOD] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35s_METHOD73)); } retval.tree = root_0; } break; case 33 : // org/jf/smali/smaliParser.g:452:4: INSTRUCTION_FORMAT35ms_METHOD { INSTRUCTION_FORMAT35ms_METHOD74=(Token)match(input,INSTRUCTION_FORMAT35ms_METHOD,FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name1362); stream_INSTRUCTION_FORMAT35ms_METHOD.add(INSTRUCTION_FORMAT35ms_METHOD74); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 452:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35ms_METHOD74)); } retval.tree = root_0; } break; case 34 : // org/jf/smali/smaliParser.g:453:4: INSTRUCTION_FORMAT51l { INSTRUCTION_FORMAT51l75=(Token)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name1372); stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l75); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 453:26: -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT51l75)); } retval.tree = root_0; } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "simple_name" public static class method_name_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "method_name" // org/jf/smali/smaliParser.g:455:1: method_name : ( simple_name | METHOD_NAME -> SIMPLE_NAME[$METHOD_NAME] ); public final smaliParser.method_name_return method_name() throws RecognitionException { smaliParser.method_name_return retval = new smaliParser.method_name_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token METHOD_NAME77=null; smaliParser.simple_name_return simple_name76 = null; RewriteRuleTokenStream stream_METHOD_NAME=new RewriteRuleTokenStream(adaptor,"token METHOD_NAME"); try { // org/jf/smali/smaliParser.g:456:2: ( simple_name | METHOD_NAME -> SIMPLE_NAME[$METHOD_NAME] ) int alt9=2; switch ( input.LA(1) ) { case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case FLOAT_LITERAL_OR_ID: case DOUBLE_LITERAL_OR_ID: case BOOL_LITERAL: case NULL_LITERAL: case REGISTER: case ANNOTATION_VISIBILITY: case ACCESS_SPEC: case INSTRUCTION_FORMAT10t: case INSTRUCTION_FORMAT10x: case INSTRUCTION_FORMAT11x: case INSTRUCTION_FORMAT12x_OR_ID: case INSTRUCTION_FORMAT21c_FIELD: case INSTRUCTION_FORMAT21c_STRING: case INSTRUCTION_FORMAT21c_TYPE: case INSTRUCTION_FORMAT21t: case INSTRUCTION_FORMAT22c_FIELD: case INSTRUCTION_FORMAT22c_TYPE: case INSTRUCTION_FORMAT22cs_FIELD: case INSTRUCTION_FORMAT22s_OR_ID: case INSTRUCTION_FORMAT22t: case INSTRUCTION_FORMAT23x: case INSTRUCTION_FORMAT31i_OR_ID: case INSTRUCTION_FORMAT31t: case INSTRUCTION_FORMAT35c_METHOD: case INSTRUCTION_FORMAT35c_TYPE: case INSTRUCTION_FORMAT35s_METHOD: case INSTRUCTION_FORMAT35ms_METHOD: case INSTRUCTION_FORMAT51l: case PRIMITIVE_TYPE: case VOID_TYPE: case PARAM_LIST_OR_ID: case SIMPLE_NAME: { alt9=1; } break; case METHOD_NAME: { alt9=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 9, 0, input); throw nvae; } switch (alt9) { case 1 : // org/jf/smali/smaliParser.g:456:4: simple_name { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_simple_name_in_method_name1386); simple_name76=simple_name(); state._fsp--; adaptor.addChild(root_0, simple_name76.getTree()); } break; case 2 : // org/jf/smali/smaliParser.g:457:4: METHOD_NAME { METHOD_NAME77=(Token)match(input,METHOD_NAME,FOLLOW_METHOD_NAME_in_method_name1391); stream_METHOD_NAME.add(METHOD_NAME77); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 457:16: -> SIMPLE_NAME[$METHOD_NAME] { adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, METHOD_NAME77)); } retval.tree = root_0; } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "method_name" public static class method_prototype_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "method_prototype" // org/jf/smali/smaliParser.g:459: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 )? ) ; public final smaliParser.method_prototype_return method_prototype() throws RecognitionException { smaliParser.method_prototype_return retval = new smaliParser.method_prototype_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token OPEN_PAREN78=null; Token CLOSE_PAREN80=null; smaliParser.param_list_return param_list79 = null; smaliParser.type_descriptor_return type_descriptor81 = null; RewriteRuleTokenStream stream_OPEN_PAREN=new RewriteRuleTokenStream(adaptor,"token OPEN_PAREN"); RewriteRuleTokenStream stream_CLOSE_PAREN=new RewriteRuleTokenStream(adaptor,"token CLOSE_PAREN"); RewriteRuleSubtreeStream stream_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule type_descriptor"); RewriteRuleSubtreeStream stream_param_list=new RewriteRuleSubtreeStream(adaptor,"rule param_list"); try { // org/jf/smali/smaliParser.g:460:2: ( OPEN_PAREN param_list CLOSE_PAREN type_descriptor -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) ) // org/jf/smali/smaliParser.g:460:4: OPEN_PAREN param_list CLOSE_PAREN type_descriptor { OPEN_PAREN78=(Token)match(input,OPEN_PAREN,FOLLOW_OPEN_PAREN_in_method_prototype1405); stream_OPEN_PAREN.add(OPEN_PAREN78); pushFollow(FOLLOW_param_list_in_method_prototype1407); param_list79=param_list(); state._fsp--; stream_param_list.add(param_list79.getTree()); CLOSE_PAREN80=(Token)match(input,CLOSE_PAREN,FOLLOW_CLOSE_PAREN_in_method_prototype1409); stream_CLOSE_PAREN.add(CLOSE_PAREN80); pushFollow(FOLLOW_type_descriptor_in_method_prototype1411); type_descriptor81=type_descriptor(); state._fsp--; stream_type_descriptor.add(type_descriptor81.getTree()); // AST REWRITE // elements: type_descriptor, param_list // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 461:3: -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) { // org/jf/smali/smaliParser.g:461:6: ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD_PROTOTYPE, ((Token)retval.start), "I_METHOD_PROTOTYPE"), root_1); // org/jf/smali/smaliParser.g:461:57: ^( I_METHOD_RETURN_TYPE type_descriptor ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD_RETURN_TYPE, "I_METHOD_RETURN_TYPE"), root_2); adaptor.addChild(root_2, stream_type_descriptor.nextTree()); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:461:97: ( param_list )? if ( stream_param_list.hasNext() ) { adaptor.addChild(root_1, stream_param_list.nextTree()); } stream_param_list.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "method_prototype" public static class param_list_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "param_list" // org/jf/smali/smaliParser.g:463:1: param_list : ( PARAM_LIST -> | PARAM_LIST_OR_ID -> | ( nonvoid_type_descriptor )* ); public final smaliParser.param_list_return param_list() throws RecognitionException { smaliParser.param_list_return retval = new smaliParser.param_list_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token PARAM_LIST82=null; Token PARAM_LIST_OR_ID83=null; smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor84 = null; RewriteRuleTokenStream stream_PARAM_LIST=new RewriteRuleTokenStream(adaptor,"token PARAM_LIST"); RewriteRuleTokenStream stream_PARAM_LIST_OR_ID=new RewriteRuleTokenStream(adaptor,"token PARAM_LIST_OR_ID"); try { // org/jf/smali/smaliParser.g:464:2: ( PARAM_LIST -> | PARAM_LIST_OR_ID -> | ( nonvoid_type_descriptor )* ) int alt11=3; switch ( input.LA(1) ) { case PARAM_LIST: { alt11=1; } break; case PARAM_LIST_OR_ID: { alt11=2; } break; case PRIMITIVE_TYPE: case CLASS_DESCRIPTOR: case ARRAY_DESCRIPTOR: case CLOSE_PAREN: { alt11=3; } break; default: NoViableAltException nvae = new NoViableAltException("", 11, 0, input); throw nvae; } switch (alt11) { case 1 : // org/jf/smali/smaliParser.g:464:4: PARAM_LIST { PARAM_LIST82=(Token)match(input,PARAM_LIST,FOLLOW_PARAM_LIST_in_param_list1438); stream_PARAM_LIST.add(PARAM_LIST82); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 464:15: -> { adaptor.addChild(root_0, parseParamList((CommonToken)PARAM_LIST82) ); } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:465:4: PARAM_LIST_OR_ID { PARAM_LIST_OR_ID83=(Token)match(input,PARAM_LIST_OR_ID,FOLLOW_PARAM_LIST_OR_ID_in_param_list1447); stream_PARAM_LIST_OR_ID.add(PARAM_LIST_OR_ID83); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 465:21: -> { adaptor.addChild(root_0, parseParamList((CommonToken)PARAM_LIST_OR_ID83) ); } retval.tree = root_0; } break; case 3 : // org/jf/smali/smaliParser.g:466:4: ( nonvoid_type_descriptor )* { root_0 = (CommonTree)adaptor.nil(); // org/jf/smali/smaliParser.g:466:4: ( nonvoid_type_descriptor )* loop10: do { int alt10=2; switch ( input.LA(1) ) { case PRIMITIVE_TYPE: case CLASS_DESCRIPTOR: case ARRAY_DESCRIPTOR: { alt10=1; } break; } switch (alt10) { case 1 : // org/jf/smali/smaliParser.g:466:4: nonvoid_type_descriptor { pushFollow(FOLLOW_nonvoid_type_descriptor_in_param_list1456); nonvoid_type_descriptor84=nonvoid_type_descriptor(); state._fsp--; adaptor.addChild(root_0, nonvoid_type_descriptor84.getTree()); } break; default : break loop10; } } while (true); } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "param_list" public static class type_descriptor_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "type_descriptor" // org/jf/smali/smaliParser.g:468:1: type_descriptor : ( VOID_TYPE | PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ); public final smaliParser.type_descriptor_return type_descriptor() throws RecognitionException { smaliParser.type_descriptor_return retval = new smaliParser.type_descriptor_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token set85=null; try { // org/jf/smali/smaliParser.g:469:2: ( VOID_TYPE | PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) // org/jf/smali/smaliParser.g: { root_0 = (CommonTree)adaptor.nil(); set85=(Token)input.LT(1); if ( (input.LA(1)>=PRIMITIVE_TYPE && input.LA(1)<=ARRAY_DESCRIPTOR) ) { input.consume(); adaptor.addChild(root_0, (CommonTree)adaptor.create(set85)); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "type_descriptor" public static class nonvoid_type_descriptor_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "nonvoid_type_descriptor" // org/jf/smali/smaliParser.g:474:1: nonvoid_type_descriptor : ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ); public final smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor() throws RecognitionException { smaliParser.nonvoid_type_descriptor_return retval = new smaliParser.nonvoid_type_descriptor_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token set86=null; try { // org/jf/smali/smaliParser.g:475:2: ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) // org/jf/smali/smaliParser.g: { root_0 = (CommonTree)adaptor.nil(); set86=(Token)input.LT(1); if ( input.LA(1)==PRIMITIVE_TYPE||(input.LA(1)>=CLASS_DESCRIPTOR && input.LA(1)<=ARRAY_DESCRIPTOR) ) { input.consume(); adaptor.addChild(root_0, (CommonTree)adaptor.create(set86)); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "nonvoid_type_descriptor" public static class reference_type_descriptor_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "reference_type_descriptor" // org/jf/smali/smaliParser.g:479:1: reference_type_descriptor : ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ); public final smaliParser.reference_type_descriptor_return reference_type_descriptor() throws RecognitionException { smaliParser.reference_type_descriptor_return retval = new smaliParser.reference_type_descriptor_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token set87=null; try { // org/jf/smali/smaliParser.g:480:2: ( CLASS_DESCRIPTOR | ARRAY_DESCRIPTOR ) // org/jf/smali/smaliParser.g: { root_0 = (CommonTree)adaptor.nil(); set87=(Token)input.LT(1); if ( (input.LA(1)>=CLASS_DESCRIPTOR && input.LA(1)<=ARRAY_DESCRIPTOR) ) { input.consume(); adaptor.addChild(root_0, (CommonTree)adaptor.create(set87)); state.errorRecovery=false; } else { MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "reference_type_descriptor" public static class integer_literal_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "integer_literal" // org/jf/smali/smaliParser.g:483:1: integer_literal : ( POSITIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] | INTEGER_LITERAL ); public final smaliParser.integer_literal_return integer_literal() throws RecognitionException { smaliParser.integer_literal_return retval = new smaliParser.integer_literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token POSITIVE_INTEGER_LITERAL88=null; Token NEGATIVE_INTEGER_LITERAL89=null; Token INTEGER_LITERAL90=null; CommonTree INTEGER_LITERAL90_tree=null; RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token NEGATIVE_INTEGER_LITERAL"); RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token POSITIVE_INTEGER_LITERAL"); try { // org/jf/smali/smaliParser.g:484:2: ( POSITIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] | INTEGER_LITERAL ) int alt12=3; switch ( input.LA(1) ) { case POSITIVE_INTEGER_LITERAL: { alt12=1; } break; case NEGATIVE_INTEGER_LITERAL: { alt12=2; } break; case INTEGER_LITERAL: { alt12=3; } break; default: NoViableAltException nvae = new NoViableAltException("", 12, 0, input); throw nvae; } switch (alt12) { case 1 : // org/jf/smali/smaliParser.g:484:4: POSITIVE_INTEGER_LITERAL { POSITIVE_INTEGER_LITERAL88=(Token)match(input,POSITIVE_INTEGER_LITERAL,FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal1523); stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL88); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 484:29: -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] { adaptor.addChild(root_0, (CommonTree)adaptor.create(INTEGER_LITERAL, POSITIVE_INTEGER_LITERAL88)); } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:485:4: NEGATIVE_INTEGER_LITERAL { NEGATIVE_INTEGER_LITERAL89=(Token)match(input,NEGATIVE_INTEGER_LITERAL,FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal1533); stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL89); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 485:29: -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] { adaptor.addChild(root_0, (CommonTree)adaptor.create(INTEGER_LITERAL, NEGATIVE_INTEGER_LITERAL89)); } retval.tree = root_0; } break; case 3 : // org/jf/smali/smaliParser.g:486:4: INTEGER_LITERAL { root_0 = (CommonTree)adaptor.nil(); INTEGER_LITERAL90=(Token)match(input,INTEGER_LITERAL,FOLLOW_INTEGER_LITERAL_in_integer_literal1543); INTEGER_LITERAL90_tree = (CommonTree)adaptor.create(INTEGER_LITERAL90); adaptor.addChild(root_0, INTEGER_LITERAL90_tree); } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "integer_literal" public static class float_literal_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "float_literal" // org/jf/smali/smaliParser.g:488:1: float_literal : ( FLOAT_LITERAL_OR_ID -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] | FLOAT_LITERAL ); public final smaliParser.float_literal_return float_literal() throws RecognitionException { smaliParser.float_literal_return retval = new smaliParser.float_literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token FLOAT_LITERAL_OR_ID91=null; Token FLOAT_LITERAL92=null; CommonTree FLOAT_LITERAL92_tree=null; RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token FLOAT_LITERAL_OR_ID"); try { // org/jf/smali/smaliParser.g:489:2: ( FLOAT_LITERAL_OR_ID -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] | FLOAT_LITERAL ) int alt13=2; switch ( input.LA(1) ) { case FLOAT_LITERAL_OR_ID: { alt13=1; } break; case FLOAT_LITERAL: { alt13=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 13, 0, input); throw nvae; } switch (alt13) { case 1 : // org/jf/smali/smaliParser.g:489:4: FLOAT_LITERAL_OR_ID { FLOAT_LITERAL_OR_ID91=(Token)match(input,FLOAT_LITERAL_OR_ID,FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal1552); stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID91); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 489:24: -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(FLOAT_LITERAL, FLOAT_LITERAL_OR_ID91)); } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:490:4: FLOAT_LITERAL { root_0 = (CommonTree)adaptor.nil(); FLOAT_LITERAL92=(Token)match(input,FLOAT_LITERAL,FOLLOW_FLOAT_LITERAL_in_float_literal1562); FLOAT_LITERAL92_tree = (CommonTree)adaptor.create(FLOAT_LITERAL92); adaptor.addChild(root_0, FLOAT_LITERAL92_tree); } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "float_literal" public static class double_literal_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "double_literal" // org/jf/smali/smaliParser.g:492:1: double_literal : ( DOUBLE_LITERAL_OR_ID -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] | DOUBLE_LITERAL ); public final smaliParser.double_literal_return double_literal() throws RecognitionException { smaliParser.double_literal_return retval = new smaliParser.double_literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token DOUBLE_LITERAL_OR_ID93=null; Token DOUBLE_LITERAL94=null; CommonTree DOUBLE_LITERAL94_tree=null; RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token DOUBLE_LITERAL_OR_ID"); try { // org/jf/smali/smaliParser.g:493:2: ( DOUBLE_LITERAL_OR_ID -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] | DOUBLE_LITERAL ) int alt14=2; switch ( input.LA(1) ) { case DOUBLE_LITERAL_OR_ID: { alt14=1; } break; case DOUBLE_LITERAL: { alt14=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 14, 0, input); throw nvae; } switch (alt14) { case 1 : // org/jf/smali/smaliParser.g:493:4: DOUBLE_LITERAL_OR_ID { DOUBLE_LITERAL_OR_ID93=(Token)match(input,DOUBLE_LITERAL_OR_ID,FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal1571); stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID93); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 493:25: -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(DOUBLE_LITERAL, DOUBLE_LITERAL_OR_ID93)); } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:494:4: DOUBLE_LITERAL { root_0 = (CommonTree)adaptor.nil(); DOUBLE_LITERAL94=(Token)match(input,DOUBLE_LITERAL,FOLLOW_DOUBLE_LITERAL_in_double_literal1581); DOUBLE_LITERAL94_tree = (CommonTree)adaptor.create(DOUBLE_LITERAL94); adaptor.addChild(root_0, DOUBLE_LITERAL94_tree); } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "double_literal" public static class literal_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "literal" // org/jf/smali/smaliParser.g:496: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 ); public final smaliParser.literal_return literal() throws RecognitionException { smaliParser.literal_return retval = new smaliParser.literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LONG_LITERAL95=null; Token SHORT_LITERAL97=null; Token BYTE_LITERAL98=null; Token CHAR_LITERAL101=null; Token STRING_LITERAL102=null; Token BOOL_LITERAL103=null; Token NULL_LITERAL104=null; smaliParser.integer_literal_return integer_literal96 = null; smaliParser.float_literal_return float_literal99 = null; smaliParser.double_literal_return double_literal100 = null; smaliParser.array_literal_return array_literal105 = null; smaliParser.subannotation_return subannotation106 = null; smaliParser.type_field_method_literal_return type_field_method_literal107 = null; smaliParser.enum_literal_return enum_literal108 = null; CommonTree LONG_LITERAL95_tree=null; CommonTree SHORT_LITERAL97_tree=null; CommonTree BYTE_LITERAL98_tree=null; CommonTree CHAR_LITERAL101_tree=null; CommonTree STRING_LITERAL102_tree=null; CommonTree BOOL_LITERAL103_tree=null; CommonTree NULL_LITERAL104_tree=null; try { // org/jf/smali/smaliParser.g:497:2: ( 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 ) int alt15=14; switch ( input.LA(1) ) { case LONG_LITERAL: { alt15=1; } break; case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case INTEGER_LITERAL: { alt15=2; } break; case SHORT_LITERAL: { alt15=3; } break; case BYTE_LITERAL: { alt15=4; } break; case FLOAT_LITERAL_OR_ID: case FLOAT_LITERAL: { alt15=5; } break; case DOUBLE_LITERAL_OR_ID: case DOUBLE_LITERAL: { alt15=6; } break; case CHAR_LITERAL: { alt15=7; } break; case STRING_LITERAL: { alt15=8; } break; case BOOL_LITERAL: { alt15=9; } break; case NULL_LITERAL: { alt15=10; } break; case OPEN_BRACE: { alt15=11; } break; case SUBANNOTATION_DIRECTIVE: { alt15=12; } break; case PRIMITIVE_TYPE: case VOID_TYPE: case CLASS_DESCRIPTOR: case ARRAY_DESCRIPTOR: { alt15=13; } break; case ENUM_DIRECTIVE: { alt15=14; } break; default: NoViableAltException nvae = new NoViableAltException("", 15, 0, input); throw nvae; } switch (alt15) { case 1 : // org/jf/smali/smaliParser.g:497:4: LONG_LITERAL { root_0 = (CommonTree)adaptor.nil(); LONG_LITERAL95=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_literal1590); LONG_LITERAL95_tree = (CommonTree)adaptor.create(LONG_LITERAL95); adaptor.addChild(root_0, LONG_LITERAL95_tree); } break; case 2 : // org/jf/smali/smaliParser.g:498:4: integer_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_integer_literal_in_literal1595); integer_literal96=integer_literal(); state._fsp--; adaptor.addChild(root_0, integer_literal96.getTree()); } break; case 3 : // org/jf/smali/smaliParser.g:499:4: SHORT_LITERAL { root_0 = (CommonTree)adaptor.nil(); SHORT_LITERAL97=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_literal1600); SHORT_LITERAL97_tree = (CommonTree)adaptor.create(SHORT_LITERAL97); adaptor.addChild(root_0, SHORT_LITERAL97_tree); } break; case 4 : // org/jf/smali/smaliParser.g:500:4: BYTE_LITERAL { root_0 = (CommonTree)adaptor.nil(); BYTE_LITERAL98=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_literal1605); BYTE_LITERAL98_tree = (CommonTree)adaptor.create(BYTE_LITERAL98); adaptor.addChild(root_0, BYTE_LITERAL98_tree); } break; case 5 : // org/jf/smali/smaliParser.g:501:4: float_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_float_literal_in_literal1610); float_literal99=float_literal(); state._fsp--; adaptor.addChild(root_0, float_literal99.getTree()); } break; case 6 : // org/jf/smali/smaliParser.g:502:4: double_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_double_literal_in_literal1615); double_literal100=double_literal(); state._fsp--; adaptor.addChild(root_0, double_literal100.getTree()); } break; case 7 : // org/jf/smali/smaliParser.g:503:4: CHAR_LITERAL { root_0 = (CommonTree)adaptor.nil(); CHAR_LITERAL101=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_literal1620); CHAR_LITERAL101_tree = (CommonTree)adaptor.create(CHAR_LITERAL101); adaptor.addChild(root_0, CHAR_LITERAL101_tree); } break; case 8 : // org/jf/smali/smaliParser.g:504:4: STRING_LITERAL { root_0 = (CommonTree)adaptor.nil(); STRING_LITERAL102=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_literal1625); STRING_LITERAL102_tree = (CommonTree)adaptor.create(STRING_LITERAL102); adaptor.addChild(root_0, STRING_LITERAL102_tree); } break; case 9 : // org/jf/smali/smaliParser.g:505:4: BOOL_LITERAL { root_0 = (CommonTree)adaptor.nil(); BOOL_LITERAL103=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_literal1630); BOOL_LITERAL103_tree = (CommonTree)adaptor.create(BOOL_LITERAL103); adaptor.addChild(root_0, BOOL_LITERAL103_tree); } break; case 10 : // org/jf/smali/smaliParser.g:506:4: NULL_LITERAL { root_0 = (CommonTree)adaptor.nil(); NULL_LITERAL104=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_literal1635); NULL_LITERAL104_tree = (CommonTree)adaptor.create(NULL_LITERAL104); adaptor.addChild(root_0, NULL_LITERAL104_tree); } break; case 11 : // org/jf/smali/smaliParser.g:507:4: array_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_array_literal_in_literal1640); array_literal105=array_literal(); state._fsp--; adaptor.addChild(root_0, array_literal105.getTree()); } break; case 12 : // org/jf/smali/smaliParser.g:508:4: subannotation { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_subannotation_in_literal1645); subannotation106=subannotation(); state._fsp--; adaptor.addChild(root_0, subannotation106.getTree()); } break; case 13 : // org/jf/smali/smaliParser.g:509:4: type_field_method_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_type_field_method_literal_in_literal1650); type_field_method_literal107=type_field_method_literal(); state._fsp--; adaptor.addChild(root_0, type_field_method_literal107.getTree()); } break; case 14 : // org/jf/smali/smaliParser.g:510:4: enum_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_enum_literal_in_literal1655); enum_literal108=enum_literal(); state._fsp--; adaptor.addChild(root_0, enum_literal108.getTree()); } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "literal" public static class integral_literal_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "integral_literal" // org/jf/smali/smaliParser.g:512:1: integral_literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | CHAR_LITERAL | BYTE_LITERAL ); public final smaliParser.integral_literal_return integral_literal() throws RecognitionException { smaliParser.integral_literal_return retval = new smaliParser.integral_literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LONG_LITERAL109=null; Token SHORT_LITERAL111=null; Token CHAR_LITERAL112=null; Token BYTE_LITERAL113=null; smaliParser.integer_literal_return integer_literal110 = null; CommonTree LONG_LITERAL109_tree=null; CommonTree SHORT_LITERAL111_tree=null; CommonTree CHAR_LITERAL112_tree=null; CommonTree BYTE_LITERAL113_tree=null; try { // org/jf/smali/smaliParser.g:513:2: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | CHAR_LITERAL | BYTE_LITERAL ) int alt16=5; switch ( input.LA(1) ) { case LONG_LITERAL: { alt16=1; } break; case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case INTEGER_LITERAL: { alt16=2; } break; case SHORT_LITERAL: { alt16=3; } break; case CHAR_LITERAL: { alt16=4; } break; case BYTE_LITERAL: { alt16=5; } break; default: NoViableAltException nvae = new NoViableAltException("", 16, 0, input); throw nvae; } switch (alt16) { case 1 : // org/jf/smali/smaliParser.g:513:4: LONG_LITERAL { root_0 = (CommonTree)adaptor.nil(); LONG_LITERAL109=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_integral_literal1664); LONG_LITERAL109_tree = (CommonTree)adaptor.create(LONG_LITERAL109); adaptor.addChild(root_0, LONG_LITERAL109_tree); } break; case 2 : // org/jf/smali/smaliParser.g:514:4: integer_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_integer_literal_in_integral_literal1669); integer_literal110=integer_literal(); state._fsp--; adaptor.addChild(root_0, integer_literal110.getTree()); } break; case 3 : // org/jf/smali/smaliParser.g:515:4: SHORT_LITERAL { root_0 = (CommonTree)adaptor.nil(); SHORT_LITERAL111=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_integral_literal1674); SHORT_LITERAL111_tree = (CommonTree)adaptor.create(SHORT_LITERAL111); adaptor.addChild(root_0, SHORT_LITERAL111_tree); } break; case 4 : // org/jf/smali/smaliParser.g:516:4: CHAR_LITERAL { root_0 = (CommonTree)adaptor.nil(); CHAR_LITERAL112=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_integral_literal1679); CHAR_LITERAL112_tree = (CommonTree)adaptor.create(CHAR_LITERAL112); adaptor.addChild(root_0, CHAR_LITERAL112_tree); } break; case 5 : // org/jf/smali/smaliParser.g:517:4: BYTE_LITERAL { root_0 = (CommonTree)adaptor.nil(); BYTE_LITERAL113=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_integral_literal1684); BYTE_LITERAL113_tree = (CommonTree)adaptor.create(BYTE_LITERAL113); adaptor.addChild(root_0, BYTE_LITERAL113_tree); } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "integral_literal" public static class fixed_32bit_literal_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "fixed_32bit_literal" // org/jf/smali/smaliParser.g:519:1: fixed_32bit_literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | CHAR_LITERAL | BOOL_LITERAL ); public final smaliParser.fixed_32bit_literal_return fixed_32bit_literal() throws RecognitionException { smaliParser.fixed_32bit_literal_return retval = new smaliParser.fixed_32bit_literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LONG_LITERAL114=null; Token SHORT_LITERAL116=null; Token BYTE_LITERAL117=null; Token CHAR_LITERAL119=null; Token BOOL_LITERAL120=null; smaliParser.integer_literal_return integer_literal115 = null; smaliParser.float_literal_return float_literal118 = null; CommonTree LONG_LITERAL114_tree=null; CommonTree SHORT_LITERAL116_tree=null; CommonTree BYTE_LITERAL117_tree=null; CommonTree CHAR_LITERAL119_tree=null; CommonTree BOOL_LITERAL120_tree=null; try { // org/jf/smali/smaliParser.g:520:2: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | CHAR_LITERAL | BOOL_LITERAL ) int alt17=7; switch ( input.LA(1) ) { case LONG_LITERAL: { alt17=1; } break; case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case INTEGER_LITERAL: { alt17=2; } break; case SHORT_LITERAL: { alt17=3; } break; case BYTE_LITERAL: { alt17=4; } break; case FLOAT_LITERAL_OR_ID: case FLOAT_LITERAL: { alt17=5; } break; case CHAR_LITERAL: { alt17=6; } break; case BOOL_LITERAL: { alt17=7; } break; default: NoViableAltException nvae = new NoViableAltException("", 17, 0, input); throw nvae; } switch (alt17) { case 1 : // org/jf/smali/smaliParser.g:520:4: LONG_LITERAL { root_0 = (CommonTree)adaptor.nil(); LONG_LITERAL114=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_fixed_32bit_literal1693); LONG_LITERAL114_tree = (CommonTree)adaptor.create(LONG_LITERAL114); adaptor.addChild(root_0, LONG_LITERAL114_tree); } break; case 2 : // org/jf/smali/smaliParser.g:521:4: integer_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_integer_literal_in_fixed_32bit_literal1698); integer_literal115=integer_literal(); state._fsp--; adaptor.addChild(root_0, integer_literal115.getTree()); } break; case 3 : // org/jf/smali/smaliParser.g:522:4: SHORT_LITERAL { root_0 = (CommonTree)adaptor.nil(); SHORT_LITERAL116=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal1703); SHORT_LITERAL116_tree = (CommonTree)adaptor.create(SHORT_LITERAL116); adaptor.addChild(root_0, SHORT_LITERAL116_tree); } break; case 4 : // org/jf/smali/smaliParser.g:523:4: BYTE_LITERAL { root_0 = (CommonTree)adaptor.nil(); BYTE_LITERAL117=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal1708); BYTE_LITERAL117_tree = (CommonTree)adaptor.create(BYTE_LITERAL117); adaptor.addChild(root_0, BYTE_LITERAL117_tree); } break; case 5 : // org/jf/smali/smaliParser.g:524:4: float_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_float_literal_in_fixed_32bit_literal1713); float_literal118=float_literal(); state._fsp--; adaptor.addChild(root_0, float_literal118.getTree()); } break; case 6 : // org/jf/smali/smaliParser.g:525:4: CHAR_LITERAL { root_0 = (CommonTree)adaptor.nil(); CHAR_LITERAL119=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal1718); CHAR_LITERAL119_tree = (CommonTree)adaptor.create(CHAR_LITERAL119); adaptor.addChild(root_0, CHAR_LITERAL119_tree); } break; case 7 : // org/jf/smali/smaliParser.g:526:4: BOOL_LITERAL { root_0 = (CommonTree)adaptor.nil(); BOOL_LITERAL120=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal1723); BOOL_LITERAL120_tree = (CommonTree)adaptor.create(BOOL_LITERAL120); adaptor.addChild(root_0, BOOL_LITERAL120_tree); } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "fixed_32bit_literal" public static class fixed_literal_return extends ParserRuleReturnScope { public int size; CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "fixed_literal" // org/jf/smali/smaliParser.g:528:1: fixed_literal returns [int size] : ( integer_literal | LONG_LITERAL | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | BOOL_LITERAL ); public final smaliParser.fixed_literal_return fixed_literal() throws RecognitionException { smaliParser.fixed_literal_return retval = new smaliParser.fixed_literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LONG_LITERAL122=null; Token SHORT_LITERAL123=null; Token BYTE_LITERAL124=null; Token CHAR_LITERAL127=null; Token BOOL_LITERAL128=null; smaliParser.integer_literal_return integer_literal121 = null; smaliParser.float_literal_return float_literal125 = null; smaliParser.double_literal_return double_literal126 = null; CommonTree LONG_LITERAL122_tree=null; CommonTree SHORT_LITERAL123_tree=null; CommonTree BYTE_LITERAL124_tree=null; CommonTree CHAR_LITERAL127_tree=null; CommonTree BOOL_LITERAL128_tree=null; try { // org/jf/smali/smaliParser.g:529:2: ( integer_literal | LONG_LITERAL | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | BOOL_LITERAL ) int alt18=8; switch ( input.LA(1) ) { case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case INTEGER_LITERAL: { alt18=1; } break; case LONG_LITERAL: { alt18=2; } break; case SHORT_LITERAL: { alt18=3; } break; case BYTE_LITERAL: { alt18=4; } break; case FLOAT_LITERAL_OR_ID: case FLOAT_LITERAL: { alt18=5; } break; case DOUBLE_LITERAL_OR_ID: case DOUBLE_LITERAL: { alt18=6; } break; case CHAR_LITERAL: { alt18=7; } break; case BOOL_LITERAL: { alt18=8; } break; default: NoViableAltException nvae = new NoViableAltException("", 18, 0, input); throw nvae; } switch (alt18) { case 1 : // org/jf/smali/smaliParser.g:529:4: integer_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_integer_literal_in_fixed_literal1735); integer_literal121=integer_literal(); state._fsp--; adaptor.addChild(root_0, integer_literal121.getTree()); retval.size = 4; } break; case 2 : // org/jf/smali/smaliParser.g:530:4: LONG_LITERAL { root_0 = (CommonTree)adaptor.nil(); LONG_LITERAL122=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_fixed_literal1742); LONG_LITERAL122_tree = (CommonTree)adaptor.create(LONG_LITERAL122); adaptor.addChild(root_0, LONG_LITERAL122_tree); retval.size = 8; } break; case 3 : // org/jf/smali/smaliParser.g:531:4: SHORT_LITERAL { root_0 = (CommonTree)adaptor.nil(); SHORT_LITERAL123=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_fixed_literal1749); SHORT_LITERAL123_tree = (CommonTree)adaptor.create(SHORT_LITERAL123); adaptor.addChild(root_0, SHORT_LITERAL123_tree); retval.size = 2; } break; case 4 : // org/jf/smali/smaliParser.g:532:4: BYTE_LITERAL { root_0 = (CommonTree)adaptor.nil(); BYTE_LITERAL124=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_fixed_literal1756); BYTE_LITERAL124_tree = (CommonTree)adaptor.create(BYTE_LITERAL124); adaptor.addChild(root_0, BYTE_LITERAL124_tree); retval.size = 1; } break; case 5 : // org/jf/smali/smaliParser.g:533:4: float_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_float_literal_in_fixed_literal1763); float_literal125=float_literal(); state._fsp--; adaptor.addChild(root_0, float_literal125.getTree()); retval.size = 4; } break; case 6 : // org/jf/smali/smaliParser.g:534:4: double_literal { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_double_literal_in_fixed_literal1770); double_literal126=double_literal(); state._fsp--; adaptor.addChild(root_0, double_literal126.getTree()); retval.size = 8; } break; case 7 : // org/jf/smali/smaliParser.g:535:4: CHAR_LITERAL { root_0 = (CommonTree)adaptor.nil(); CHAR_LITERAL127=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_fixed_literal1777); CHAR_LITERAL127_tree = (CommonTree)adaptor.create(CHAR_LITERAL127); adaptor.addChild(root_0, CHAR_LITERAL127_tree); retval.size = 2; } break; case 8 : // org/jf/smali/smaliParser.g:536:4: BOOL_LITERAL { root_0 = (CommonTree)adaptor.nil(); BOOL_LITERAL128=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_fixed_literal1784); BOOL_LITERAL128_tree = (CommonTree)adaptor.create(BOOL_LITERAL128); adaptor.addChild(root_0, BOOL_LITERAL128_tree); retval.size = 1; } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "fixed_literal" public static class array_literal_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "array_literal" // org/jf/smali/smaliParser.g:538:1: array_literal : OPEN_BRACE ( literal ( COMMA literal )* | ) CLOSE_BRACE -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) ; public final smaliParser.array_literal_return array_literal() throws RecognitionException { smaliParser.array_literal_return retval = new smaliParser.array_literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token OPEN_BRACE129=null; Token COMMA131=null; Token CLOSE_BRACE133=null; smaliParser.literal_return literal130 = null; smaliParser.literal_return literal132 = null; RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE"); RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE"); RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal"); try { // org/jf/smali/smaliParser.g:539:2: ( OPEN_BRACE ( literal ( COMMA literal )* | ) CLOSE_BRACE -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) ) // org/jf/smali/smaliParser.g:539:4: OPEN_BRACE ( literal ( COMMA literal )* | ) CLOSE_BRACE { OPEN_BRACE129=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_array_literal1795); stream_OPEN_BRACE.add(OPEN_BRACE129); // org/jf/smali/smaliParser.g:539:15: ( literal ( COMMA literal )* | ) int alt20=2; switch ( input.LA(1) ) { case SUBANNOTATION_DIRECTIVE: case ENUM_DIRECTIVE: case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case LONG_LITERAL: case SHORT_LITERAL: case BYTE_LITERAL: case FLOAT_LITERAL_OR_ID: case DOUBLE_LITERAL_OR_ID: case FLOAT_LITERAL: case DOUBLE_LITERAL: case BOOL_LITERAL: case NULL_LITERAL: case STRING_LITERAL: case CHAR_LITERAL: case PRIMITIVE_TYPE: case VOID_TYPE: case CLASS_DESCRIPTOR: case ARRAY_DESCRIPTOR: case OPEN_BRACE: case INTEGER_LITERAL: { alt20=1; } break; case CLOSE_BRACE: { alt20=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 20, 0, input); throw nvae; } switch (alt20) { case 1 : // org/jf/smali/smaliParser.g:539:16: literal ( COMMA literal )* { pushFollow(FOLLOW_literal_in_array_literal1798); literal130=literal(); state._fsp--; stream_literal.add(literal130.getTree()); // org/jf/smali/smaliParser.g:539:24: ( COMMA literal )* loop19: do { int alt19=2; switch ( input.LA(1) ) { case COMMA: { alt19=1; } break; } switch (alt19) { case 1 : // org/jf/smali/smaliParser.g:539:25: COMMA literal { COMMA131=(Token)match(input,COMMA,FOLLOW_COMMA_in_array_literal1801); stream_COMMA.add(COMMA131); pushFollow(FOLLOW_literal_in_array_literal1803); literal132=literal(); state._fsp--; stream_literal.add(literal132.getTree()); } break; default : break loop19; } } while (true); } break; case 2 : // org/jf/smali/smaliParser.g:539:43: { } break; } CLOSE_BRACE133=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_array_literal1811); stream_CLOSE_BRACE.add(CLOSE_BRACE133); // AST REWRITE // elements: literal // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 540:3: -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) { // org/jf/smali/smaliParser.g:540:6: ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_ARRAY, ((Token)retval.start), "I_ENCODED_ARRAY"), root_1); // org/jf/smali/smaliParser.g:540:51: ( literal )* while ( stream_literal.hasNext() ) { adaptor.addChild(root_1, stream_literal.nextTree()); } stream_literal.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "array_literal" public static class annotation_element_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "annotation_element" // org/jf/smali/smaliParser.g:542:1: annotation_element : simple_name EQUAL literal -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) ; public final smaliParser.annotation_element_return annotation_element() throws RecognitionException { smaliParser.annotation_element_return retval = new smaliParser.annotation_element_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token EQUAL135=null; smaliParser.simple_name_return simple_name134 = null; smaliParser.literal_return literal136 = null; RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL"); RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal"); try { // org/jf/smali/smaliParser.g:543:2: ( simple_name EQUAL literal -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) ) // org/jf/smali/smaliParser.g:543:4: simple_name EQUAL literal { pushFollow(FOLLOW_simple_name_in_annotation_element1832); simple_name134=simple_name(); state._fsp--; stream_simple_name.add(simple_name134.getTree()); EQUAL135=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_annotation_element1834); stream_EQUAL.add(EQUAL135); pushFollow(FOLLOW_literal_in_annotation_element1836); literal136=literal(); state._fsp--; stream_literal.add(literal136.getTree()); // AST REWRITE // elements: simple_name, literal // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 544:3: -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) { // org/jf/smali/smaliParser.g:544:6: ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATION_ELEMENT, ((Token)retval.start), "I_ANNOTATION_ELEMENT"), root_1); adaptor.addChild(root_1, stream_simple_name.nextTree()); adaptor.addChild(root_1, stream_literal.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "annotation_element" public static class annotation_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "annotation" // org/jf/smali/smaliParser.g:546: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 )* ) ) ; public final smaliParser.annotation_return annotation() throws RecognitionException { smaliParser.annotation_return retval = new smaliParser.annotation_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ANNOTATION_DIRECTIVE137=null; Token ANNOTATION_VISIBILITY138=null; Token CLASS_DESCRIPTOR139=null; Token END_ANNOTATION_DIRECTIVE141=null; smaliParser.annotation_element_return annotation_element140 = null; RewriteRuleTokenStream stream_ANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_DIRECTIVE"); RewriteRuleTokenStream stream_END_ANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_ANNOTATION_DIRECTIVE"); RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_VISIBILITY"); RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); RewriteRuleSubtreeStream stream_annotation_element=new RewriteRuleSubtreeStream(adaptor,"rule annotation_element"); try { // org/jf/smali/smaliParser.g:547:2: ( 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 )* ) ) ) // org/jf/smali/smaliParser.g:547:4: ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE { ANNOTATION_DIRECTIVE137=(Token)match(input,ANNOTATION_DIRECTIVE,FOLLOW_ANNOTATION_DIRECTIVE_in_annotation1858); stream_ANNOTATION_DIRECTIVE.add(ANNOTATION_DIRECTIVE137); ANNOTATION_VISIBILITY138=(Token)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_annotation1860); stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY138); CLASS_DESCRIPTOR139=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_annotation1862); stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR139); // org/jf/smali/smaliParser.g:548:3: ( annotation_element )* loop21: do { int alt21=2; switch ( input.LA(1) ) { case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case FLOAT_LITERAL_OR_ID: case DOUBLE_LITERAL_OR_ID: case BOOL_LITERAL: case NULL_LITERAL: case REGISTER: case ANNOTATION_VISIBILITY: case ACCESS_SPEC: case INSTRUCTION_FORMAT10t: case INSTRUCTION_FORMAT10x: case INSTRUCTION_FORMAT11x: case INSTRUCTION_FORMAT12x_OR_ID: case INSTRUCTION_FORMAT21c_FIELD: case INSTRUCTION_FORMAT21c_STRING: case INSTRUCTION_FORMAT21c_TYPE: case INSTRUCTION_FORMAT21t: case INSTRUCTION_FORMAT22c_FIELD: case INSTRUCTION_FORMAT22c_TYPE: case INSTRUCTION_FORMAT22cs_FIELD: case INSTRUCTION_FORMAT22s_OR_ID: case INSTRUCTION_FORMAT22t: case INSTRUCTION_FORMAT23x: case INSTRUCTION_FORMAT31i_OR_ID: case INSTRUCTION_FORMAT31t: case INSTRUCTION_FORMAT35c_METHOD: case INSTRUCTION_FORMAT35c_TYPE: case INSTRUCTION_FORMAT35s_METHOD: case INSTRUCTION_FORMAT35ms_METHOD: case INSTRUCTION_FORMAT51l: case PRIMITIVE_TYPE: case VOID_TYPE: case PARAM_LIST_OR_ID: case SIMPLE_NAME: { alt21=1; } break; } switch (alt21) { case 1 : // org/jf/smali/smaliParser.g:548:3: annotation_element { pushFollow(FOLLOW_annotation_element_in_annotation1866); annotation_element140=annotation_element(); state._fsp--; stream_annotation_element.add(annotation_element140.getTree()); } break; default : break loop21; } } while (true); END_ANNOTATION_DIRECTIVE141=(Token)match(input,END_ANNOTATION_DIRECTIVE,FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation1869); stream_END_ANNOTATION_DIRECTIVE.add(END_ANNOTATION_DIRECTIVE141); // AST REWRITE // elements: CLASS_DESCRIPTOR, annotation_element, ANNOTATION_VISIBILITY // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 549:3: -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) { // org/jf/smali/smaliParser.g:549:6: ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATION, ((Token)retval.start), "I_ANNOTATION"), root_1); adaptor.addChild(root_1, stream_ANNOTATION_VISIBILITY.nextNode()); // org/jf/smali/smaliParser.g:549:67: ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUBANNOTATION, ((Token)retval.start), "I_SUBANNOTATION"), root_2); adaptor.addChild(root_2, stream_CLASS_DESCRIPTOR.nextNode()); // org/jf/smali/smaliParser.g:549:129: ( annotation_element )* while ( stream_annotation_element.hasNext() ) { adaptor.addChild(root_2, stream_annotation_element.nextTree()); } stream_annotation_element.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "annotation" public static class subannotation_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "subannotation" // org/jf/smali/smaliParser.g:551:1: subannotation : SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ; public final smaliParser.subannotation_return subannotation() throws RecognitionException { smaliParser.subannotation_return retval = new smaliParser.subannotation_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SUBANNOTATION_DIRECTIVE142=null; Token CLASS_DESCRIPTOR143=null; Token END_SUBANNOTATION_DIRECTIVE145=null; smaliParser.annotation_element_return annotation_element144 = null; RewriteRuleTokenStream stream_SUBANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SUBANNOTATION_DIRECTIVE"); RewriteRuleTokenStream stream_END_SUBANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_SUBANNOTATION_DIRECTIVE"); RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR"); RewriteRuleSubtreeStream stream_annotation_element=new RewriteRuleSubtreeStream(adaptor,"rule annotation_element"); try { // org/jf/smali/smaliParser.g:552:2: ( SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) // org/jf/smali/smaliParser.g:552:4: SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE { SUBANNOTATION_DIRECTIVE142=(Token)match(input,SUBANNOTATION_DIRECTIVE,FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation1899); stream_SUBANNOTATION_DIRECTIVE.add(SUBANNOTATION_DIRECTIVE142); CLASS_DESCRIPTOR143=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_subannotation1901); stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR143); // org/jf/smali/smaliParser.g:552:45: ( annotation_element )* loop22: do { int alt22=2; switch ( input.LA(1) ) { case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case FLOAT_LITERAL_OR_ID: case DOUBLE_LITERAL_OR_ID: case BOOL_LITERAL: case NULL_LITERAL: case REGISTER: case ANNOTATION_VISIBILITY: case ACCESS_SPEC: case INSTRUCTION_FORMAT10t: case INSTRUCTION_FORMAT10x: case INSTRUCTION_FORMAT11x: case INSTRUCTION_FORMAT12x_OR_ID: case INSTRUCTION_FORMAT21c_FIELD: case INSTRUCTION_FORMAT21c_STRING: case INSTRUCTION_FORMAT21c_TYPE: case INSTRUCTION_FORMAT21t: case INSTRUCTION_FORMAT22c_FIELD: case INSTRUCTION_FORMAT22c_TYPE: case INSTRUCTION_FORMAT22cs_FIELD: case INSTRUCTION_FORMAT22s_OR_ID: case INSTRUCTION_FORMAT22t: case INSTRUCTION_FORMAT23x: case INSTRUCTION_FORMAT31i_OR_ID: case INSTRUCTION_FORMAT31t: case INSTRUCTION_FORMAT35c_METHOD: case INSTRUCTION_FORMAT35c_TYPE: case INSTRUCTION_FORMAT35s_METHOD: case INSTRUCTION_FORMAT35ms_METHOD: case INSTRUCTION_FORMAT51l: case PRIMITIVE_TYPE: case VOID_TYPE: case PARAM_LIST_OR_ID: case SIMPLE_NAME: { alt22=1; } break; } switch (alt22) { case 1 : // org/jf/smali/smaliParser.g:552:45: annotation_element { pushFollow(FOLLOW_annotation_element_in_subannotation1903); annotation_element144=annotation_element(); state._fsp--; stream_annotation_element.add(annotation_element144.getTree()); } break; default : break loop22; } } while (true); END_SUBANNOTATION_DIRECTIVE145=(Token)match(input,END_SUBANNOTATION_DIRECTIVE,FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation1906); stream_END_SUBANNOTATION_DIRECTIVE.add(END_SUBANNOTATION_DIRECTIVE145); // AST REWRITE // elements: annotation_element, CLASS_DESCRIPTOR // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 553:3: -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) { // org/jf/smali/smaliParser.g:553:6: ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUBANNOTATION, ((Token)retval.start), "I_SUBANNOTATION"), root_1); adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode()); // org/jf/smali/smaliParser.g:553:68: ( annotation_element )* while ( stream_annotation_element.hasNext() ) { adaptor.addChild(root_1, stream_annotation_element.nextTree()); } stream_annotation_element.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "subannotation" public static class enum_literal_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "enum_literal" // org/jf/smali/smaliParser.g:555:1: enum_literal : ENUM_DIRECTIVE reference_type_descriptor ARROW simple_name COLON reference_type_descriptor -> ^( I_ENCODED_ENUM reference_type_descriptor simple_name reference_type_descriptor ) ; public final smaliParser.enum_literal_return enum_literal() throws RecognitionException { smaliParser.enum_literal_return retval = new smaliParser.enum_literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ENUM_DIRECTIVE146=null; Token ARROW148=null; Token COLON150=null; smaliParser.reference_type_descriptor_return reference_type_descriptor147 = null; smaliParser.simple_name_return simple_name149 = null; smaliParser.reference_type_descriptor_return reference_type_descriptor151 = null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleTokenStream stream_ENUM_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ENUM_DIRECTIVE"); RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW"); RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor"); RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); try { // org/jf/smali/smaliParser.g:556:2: ( ENUM_DIRECTIVE reference_type_descriptor ARROW simple_name COLON reference_type_descriptor -> ^( I_ENCODED_ENUM reference_type_descriptor simple_name reference_type_descriptor ) ) // org/jf/smali/smaliParser.g:556:4: ENUM_DIRECTIVE reference_type_descriptor ARROW simple_name COLON reference_type_descriptor { ENUM_DIRECTIVE146=(Token)match(input,ENUM_DIRECTIVE,FOLLOW_ENUM_DIRECTIVE_in_enum_literal1929); stream_ENUM_DIRECTIVE.add(ENUM_DIRECTIVE146); pushFollow(FOLLOW_reference_type_descriptor_in_enum_literal1931); reference_type_descriptor147=reference_type_descriptor(); state._fsp--; stream_reference_type_descriptor.add(reference_type_descriptor147.getTree()); ARROW148=(Token)match(input,ARROW,FOLLOW_ARROW_in_enum_literal1933); stream_ARROW.add(ARROW148); pushFollow(FOLLOW_simple_name_in_enum_literal1935); simple_name149=simple_name(); state._fsp--; stream_simple_name.add(simple_name149.getTree()); COLON150=(Token)match(input,COLON,FOLLOW_COLON_in_enum_literal1937); stream_COLON.add(COLON150); pushFollow(FOLLOW_reference_type_descriptor_in_enum_literal1939); reference_type_descriptor151=reference_type_descriptor(); state._fsp--; stream_reference_type_descriptor.add(reference_type_descriptor151.getTree()); // AST REWRITE // elements: reference_type_descriptor, simple_name, reference_type_descriptor // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 557:2: -> ^( I_ENCODED_ENUM reference_type_descriptor simple_name reference_type_descriptor ) { // org/jf/smali/smaliParser.g:557:5: ^( I_ENCODED_ENUM reference_type_descriptor simple_name reference_type_descriptor ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_ENUM, "I_ENCODED_ENUM"), root_1); adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree()); adaptor.addChild(root_1, stream_simple_name.nextTree()); adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "enum_literal" public static class type_field_method_literal_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "type_field_method_literal" // org/jf/smali/smaliParser.g:559:1: type_field_method_literal : ( reference_type_descriptor ( ARROW ( simple_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD reference_type_descriptor simple_name nonvoid_type_descriptor ) | method_name method_prototype -> ^( I_ENCODED_METHOD reference_type_descriptor method_name method_prototype ) ) | -> reference_type_descriptor ) | PRIMITIVE_TYPE | VOID_TYPE ); public final smaliParser.type_field_method_literal_return type_field_method_literal() throws RecognitionException { smaliParser.type_field_method_literal_return retval = new smaliParser.type_field_method_literal_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ARROW153=null; Token COLON155=null; Token PRIMITIVE_TYPE159=null; Token VOID_TYPE160=null; smaliParser.reference_type_descriptor_return reference_type_descriptor152 = null; smaliParser.simple_name_return simple_name154 = null; smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor156 = null; smaliParser.method_name_return method_name157 = null; smaliParser.method_prototype_return method_prototype158 = null; CommonTree PRIMITIVE_TYPE159_tree=null; CommonTree VOID_TYPE160_tree=null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW"); RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype"); RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor"); RewriteRuleSubtreeStream stream_method_name=new RewriteRuleSubtreeStream(adaptor,"rule method_name"); RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); try { // org/jf/smali/smaliParser.g:560:2: ( reference_type_descriptor ( ARROW ( simple_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD reference_type_descriptor simple_name nonvoid_type_descriptor ) | method_name method_prototype -> ^( I_ENCODED_METHOD reference_type_descriptor method_name method_prototype ) ) | -> reference_type_descriptor ) | PRIMITIVE_TYPE | VOID_TYPE ) int alt25=3; switch ( input.LA(1) ) { case CLASS_DESCRIPTOR: case ARRAY_DESCRIPTOR: { alt25=1; } break; case PRIMITIVE_TYPE: { alt25=2; } break; case VOID_TYPE: { alt25=3; } break; default: NoViableAltException nvae = new NoViableAltException("", 25, 0, input); throw nvae; } switch (alt25) { case 1 : // org/jf/smali/smaliParser.g:560:4: reference_type_descriptor ( ARROW ( simple_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD reference_type_descriptor simple_name nonvoid_type_descriptor ) | method_name method_prototype -> ^( I_ENCODED_METHOD reference_type_descriptor method_name method_prototype ) ) | -> reference_type_descriptor ) { pushFollow(FOLLOW_reference_type_descriptor_in_type_field_method_literal1961); reference_type_descriptor152=reference_type_descriptor(); state._fsp--; stream_reference_type_descriptor.add(reference_type_descriptor152.getTree()); // org/jf/smali/smaliParser.g:561:3: ( ARROW ( simple_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD reference_type_descriptor simple_name nonvoid_type_descriptor ) | method_name method_prototype -> ^( I_ENCODED_METHOD reference_type_descriptor method_name method_prototype ) ) | -> reference_type_descriptor ) int alt24=2; switch ( input.LA(1) ) { case ARROW: { alt24=1; } break; case EOF: case CLASS_DIRECTIVE: case SUPER_DIRECTIVE: case IMPLEMENTS_DIRECTIVE: case SOURCE_DIRECTIVE: case FIELD_DIRECTIVE: case END_FIELD_DIRECTIVE: case END_SUBANNOTATION_DIRECTIVE: case ANNOTATION_DIRECTIVE: case END_ANNOTATION_DIRECTIVE: case METHOD_DIRECTIVE: case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case FLOAT_LITERAL_OR_ID: case DOUBLE_LITERAL_OR_ID: case BOOL_LITERAL: case NULL_LITERAL: case REGISTER: case ANNOTATION_VISIBILITY: case ACCESS_SPEC: case INSTRUCTION_FORMAT10t: case INSTRUCTION_FORMAT10x: case INSTRUCTION_FORMAT11x: case INSTRUCTION_FORMAT12x_OR_ID: case INSTRUCTION_FORMAT21c_FIELD: case INSTRUCTION_FORMAT21c_STRING: case INSTRUCTION_FORMAT21c_TYPE: case INSTRUCTION_FORMAT21t: case INSTRUCTION_FORMAT22c_FIELD: case INSTRUCTION_FORMAT22c_TYPE: case INSTRUCTION_FORMAT22cs_FIELD: case INSTRUCTION_FORMAT22s_OR_ID: case INSTRUCTION_FORMAT22t: case INSTRUCTION_FORMAT23x: case INSTRUCTION_FORMAT31i_OR_ID: case INSTRUCTION_FORMAT31t: case INSTRUCTION_FORMAT35c_METHOD: case INSTRUCTION_FORMAT35c_TYPE: case INSTRUCTION_FORMAT35s_METHOD: case INSTRUCTION_FORMAT35ms_METHOD: case INSTRUCTION_FORMAT51l: case PRIMITIVE_TYPE: case VOID_TYPE: case PARAM_LIST_OR_ID: case SIMPLE_NAME: case COMMA: case CLOSE_BRACE: { alt24=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 24, 0, input); throw nvae; } switch (alt24) { case 1 : // org/jf/smali/smaliParser.g:561:5: ARROW ( simple_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD reference_type_descriptor simple_name nonvoid_type_descriptor ) | method_name method_prototype -> ^( I_ENCODED_METHOD reference_type_descriptor method_name method_prototype ) ) { ARROW153=(Token)match(input,ARROW,FOLLOW_ARROW_in_type_field_method_literal1967); stream_ARROW.add(ARROW153); // org/jf/smali/smaliParser.g:562:4: ( simple_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD reference_type_descriptor simple_name nonvoid_type_descriptor ) | method_name method_prototype -> ^( I_ENCODED_METHOD reference_type_descriptor method_name method_prototype ) ) int alt23=2; alt23 = dfa23.predict(input); switch (alt23) { case 1 : // org/jf/smali/smaliParser.g:562:6: simple_name COLON nonvoid_type_descriptor { pushFollow(FOLLOW_simple_name_in_type_field_method_literal1975); simple_name154=simple_name(); state._fsp--; stream_simple_name.add(simple_name154.getTree()); COLON155=(Token)match(input,COLON,FOLLOW_COLON_in_type_field_method_literal1977); stream_COLON.add(COLON155); pushFollow(FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal1979); nonvoid_type_descriptor156=nonvoid_type_descriptor(); state._fsp--; stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor156.getTree()); // AST REWRITE // elements: simple_name, reference_type_descriptor, nonvoid_type_descriptor // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 562:48: -> ^( I_ENCODED_FIELD reference_type_descriptor simple_name nonvoid_type_descriptor ) { // org/jf/smali/smaliParser.g:562:51: ^( I_ENCODED_FIELD reference_type_descriptor simple_name nonvoid_type_descriptor ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_FIELD, "I_ENCODED_FIELD"), root_1); adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree()); adaptor.addChild(root_1, stream_simple_name.nextTree()); adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:563:6: method_name method_prototype { pushFollow(FOLLOW_method_name_in_type_field_method_literal1998); method_name157=method_name(); state._fsp--; stream_method_name.add(method_name157.getTree()); pushFollow(FOLLOW_method_prototype_in_type_field_method_literal2000); method_prototype158=method_prototype(); state._fsp--; stream_method_prototype.add(method_prototype158.getTree()); // AST REWRITE // elements: method_name, reference_type_descriptor, method_prototype // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 563:35: -> ^( I_ENCODED_METHOD reference_type_descriptor method_name method_prototype ) { // org/jf/smali/smaliParser.g:563:38: ^( I_ENCODED_METHOD reference_type_descriptor method_name method_prototype ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_METHOD, "I_ENCODED_METHOD"), root_1); adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree()); adaptor.addChild(root_1, stream_method_name.nextTree()); adaptor.addChild(root_1, stream_method_prototype.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } } break; case 2 : // org/jf/smali/smaliParser.g:565:5: { // AST REWRITE // elements: reference_type_descriptor // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 565:5: -> reference_type_descriptor { adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree()); } retval.tree = root_0; } break; } } break; case 2 : // org/jf/smali/smaliParser.g:567:4: PRIMITIVE_TYPE { root_0 = (CommonTree)adaptor.nil(); PRIMITIVE_TYPE159=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal2034); PRIMITIVE_TYPE159_tree = (CommonTree)adaptor.create(PRIMITIVE_TYPE159); adaptor.addChild(root_0, PRIMITIVE_TYPE159_tree); } break; case 3 : // org/jf/smali/smaliParser.g:568:4: VOID_TYPE { root_0 = (CommonTree)adaptor.nil(); VOID_TYPE160=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_field_method_literal2039); VOID_TYPE160_tree = (CommonTree)adaptor.create(VOID_TYPE160); adaptor.addChild(root_0, VOID_TYPE160_tree); } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "type_field_method_literal" public static class fully_qualified_method_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "fully_qualified_method" // org/jf/smali/smaliParser.g:570:1: fully_qualified_method : reference_type_descriptor ARROW method_name method_prototype -> reference_type_descriptor method_name method_prototype ; public final smaliParser.fully_qualified_method_return fully_qualified_method() throws RecognitionException { smaliParser.fully_qualified_method_return retval = new smaliParser.fully_qualified_method_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ARROW162=null; smaliParser.reference_type_descriptor_return reference_type_descriptor161 = null; smaliParser.method_name_return method_name163 = null; smaliParser.method_prototype_return method_prototype164 = null; RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW"); RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype"); RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor"); RewriteRuleSubtreeStream stream_method_name=new RewriteRuleSubtreeStream(adaptor,"rule method_name"); try { // org/jf/smali/smaliParser.g:571:2: ( reference_type_descriptor ARROW method_name method_prototype -> reference_type_descriptor method_name method_prototype ) // org/jf/smali/smaliParser.g:571:4: reference_type_descriptor ARROW method_name method_prototype { pushFollow(FOLLOW_reference_type_descriptor_in_fully_qualified_method2048); reference_type_descriptor161=reference_type_descriptor(); state._fsp--; stream_reference_type_descriptor.add(reference_type_descriptor161.getTree()); ARROW162=(Token)match(input,ARROW,FOLLOW_ARROW_in_fully_qualified_method2050); stream_ARROW.add(ARROW162); pushFollow(FOLLOW_method_name_in_fully_qualified_method2052); method_name163=method_name(); state._fsp--; stream_method_name.add(method_name163.getTree()); pushFollow(FOLLOW_method_prototype_in_fully_qualified_method2054); method_prototype164=method_prototype(); state._fsp--; stream_method_prototype.add(method_prototype164.getTree()); // AST REWRITE // elements: method_prototype, reference_type_descriptor, method_name // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 572:2: -> reference_type_descriptor method_name method_prototype { adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree()); adaptor.addChild(root_0, stream_method_name.nextTree()); adaptor.addChild(root_0, stream_method_prototype.nextTree()); } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "fully_qualified_method" public static class fully_qualified_field_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "fully_qualified_field" // org/jf/smali/smaliParser.g:574:1: fully_qualified_field : reference_type_descriptor ARROW simple_name COLON nonvoid_type_descriptor -> reference_type_descriptor simple_name nonvoid_type_descriptor ; public final smaliParser.fully_qualified_field_return fully_qualified_field() throws RecognitionException { smaliParser.fully_qualified_field_return retval = new smaliParser.fully_qualified_field_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token ARROW166=null; Token COLON168=null; smaliParser.reference_type_descriptor_return reference_type_descriptor165 = null; smaliParser.simple_name_return simple_name167 = null; smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor169 = null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW"); RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor"); RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); try { // org/jf/smali/smaliParser.g:575:2: ( reference_type_descriptor ARROW simple_name COLON nonvoid_type_descriptor -> reference_type_descriptor simple_name nonvoid_type_descriptor ) // org/jf/smali/smaliParser.g:575:4: reference_type_descriptor ARROW simple_name COLON nonvoid_type_descriptor { pushFollow(FOLLOW_reference_type_descriptor_in_fully_qualified_field2072); reference_type_descriptor165=reference_type_descriptor(); state._fsp--; stream_reference_type_descriptor.add(reference_type_descriptor165.getTree()); ARROW166=(Token)match(input,ARROW,FOLLOW_ARROW_in_fully_qualified_field2074); stream_ARROW.add(ARROW166); pushFollow(FOLLOW_simple_name_in_fully_qualified_field2076); simple_name167=simple_name(); state._fsp--; stream_simple_name.add(simple_name167.getTree()); COLON168=(Token)match(input,COLON,FOLLOW_COLON_in_fully_qualified_field2078); stream_COLON.add(COLON168); pushFollow(FOLLOW_nonvoid_type_descriptor_in_fully_qualified_field2080); nonvoid_type_descriptor169=nonvoid_type_descriptor(); state._fsp--; stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor169.getTree()); // AST REWRITE // elements: nonvoid_type_descriptor, simple_name, reference_type_descriptor // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 576:2: -> reference_type_descriptor simple_name nonvoid_type_descriptor { adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree()); adaptor.addChild(root_0, stream_simple_name.nextTree()); adaptor.addChild(root_0, stream_nonvoid_type_descriptor.nextTree()); } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "fully_qualified_field" public static class label_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "label" // org/jf/smali/smaliParser.g:578:1: label : COLON simple_name -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ; public final smaliParser.label_return label() throws RecognitionException { smaliParser.label_return retval = new smaliParser.label_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token COLON170=null; smaliParser.simple_name_return simple_name171 = null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); try { // org/jf/smali/smaliParser.g:579:2: ( COLON simple_name -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ) // org/jf/smali/smaliParser.g:579:4: COLON simple_name { COLON170=(Token)match(input,COLON,FOLLOW_COLON_in_label2098); stream_COLON.add(COLON170); pushFollow(FOLLOW_simple_name_in_label2100); simple_name171=simple_name(); state._fsp--; stream_simple_name.add(simple_name171.getTree()); // AST REWRITE // elements: simple_name // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 579:22: -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { // org/jf/smali/smaliParser.g:579:25: ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LABEL, COLON170, "I_LABEL"), root_1); adaptor.addChild(root_1, stream_simple_name.nextTree()); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "label" public static class label_ref_or_offset_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "label_ref_or_offset" // org/jf/smali/smaliParser.g:581:1: label_ref_or_offset : ( COLON simple_name -> simple_name | OFFSET | NEGATIVE_INTEGER_LITERAL -> OFFSET[$NEGATIVE_INTEGER_LITERAL] ); public final smaliParser.label_ref_or_offset_return label_ref_or_offset() throws RecognitionException { smaliParser.label_ref_or_offset_return retval = new smaliParser.label_ref_or_offset_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token COLON172=null; Token OFFSET174=null; Token NEGATIVE_INTEGER_LITERAL175=null; smaliParser.simple_name_return simple_name173 = null; CommonTree OFFSET174_tree=null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token NEGATIVE_INTEGER_LITERAL"); RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); try { // org/jf/smali/smaliParser.g:582:2: ( COLON simple_name -> simple_name | OFFSET | NEGATIVE_INTEGER_LITERAL -> OFFSET[$NEGATIVE_INTEGER_LITERAL] ) int alt26=3; switch ( input.LA(1) ) { case COLON: { alt26=1; } break; case OFFSET: { alt26=2; } break; case NEGATIVE_INTEGER_LITERAL: { alt26=3; } break; default: NoViableAltException nvae = new NoViableAltException("", 26, 0, input); throw nvae; } switch (alt26) { case 1 : // org/jf/smali/smaliParser.g:582:4: COLON simple_name { COLON172=(Token)match(input,COLON,FOLLOW_COLON_in_label_ref_or_offset2121); stream_COLON.add(COLON172); pushFollow(FOLLOW_simple_name_in_label_ref_or_offset2123); simple_name173=simple_name(); state._fsp--; stream_simple_name.add(simple_name173.getTree()); // AST REWRITE // elements: simple_name // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 582:22: -> simple_name { adaptor.addChild(root_0, stream_simple_name.nextTree()); } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:583:4: OFFSET { root_0 = (CommonTree)adaptor.nil(); OFFSET174=(Token)match(input,OFFSET,FOLLOW_OFFSET_in_label_ref_or_offset2132); OFFSET174_tree = (CommonTree)adaptor.create(OFFSET174); adaptor.addChild(root_0, OFFSET174_tree); } break; case 3 : // org/jf/smali/smaliParser.g:584:4: NEGATIVE_INTEGER_LITERAL { NEGATIVE_INTEGER_LITERAL175=(Token)match(input,NEGATIVE_INTEGER_LITERAL,FOLLOW_NEGATIVE_INTEGER_LITERAL_in_label_ref_or_offset2137); stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL175); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 584:29: -> OFFSET[$NEGATIVE_INTEGER_LITERAL] { adaptor.addChild(root_0, (CommonTree)adaptor.create(OFFSET, NEGATIVE_INTEGER_LITERAL175)); } retval.tree = root_0; } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "label_ref_or_offset" public static class register_list_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "register_list" // org/jf/smali/smaliParser.g:586:1: register_list : ( REGISTER ( COMMA REGISTER )* -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) | -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) ); public final smaliParser.register_list_return register_list() throws RecognitionException { smaliParser.register_list_return retval = new smaliParser.register_list_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token REGISTER176=null; Token COMMA177=null; Token REGISTER178=null; RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); try { // org/jf/smali/smaliParser.g:587:2: ( REGISTER ( COMMA REGISTER )* -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) | -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) ) int alt28=2; switch ( input.LA(1) ) { case REGISTER: { alt28=1; } break; case CLOSE_BRACE: { alt28=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 28, 0, input); throw nvae; } switch (alt28) { case 1 : // org/jf/smali/smaliParser.g:587:4: REGISTER ( COMMA REGISTER )* { REGISTER176=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_list2151); stream_REGISTER.add(REGISTER176); // org/jf/smali/smaliParser.g:587:13: ( COMMA REGISTER )* loop27: do { int alt27=2; switch ( input.LA(1) ) { case COMMA: { alt27=1; } break; } switch (alt27) { case 1 : // org/jf/smali/smaliParser.g:587:14: COMMA REGISTER { COMMA177=(Token)match(input,COMMA,FOLLOW_COMMA_in_register_list2154); stream_COMMA.add(COMMA177); REGISTER178=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_list2156); stream_REGISTER.add(REGISTER178); } break; default : break loop27; } } while (true); // AST REWRITE // elements: REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 587:31: -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) { // org/jf/smali/smaliParser.g:587:34: ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_LIST, ((Token)retval.start), "I_REGISTER_LIST"), root_1); // org/jf/smali/smaliParser.g:587:79: ( REGISTER )* while ( stream_REGISTER.hasNext() ) { adaptor.addChild(root_1, stream_REGISTER.nextNode()); } stream_REGISTER.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:588:4: { // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 588:4: -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) { // org/jf/smali/smaliParser.g:588:6: ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_LIST, ((Token)retval.start), "I_REGISTER_LIST"), root_1); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "register_list" public static class register_range_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "register_range" // org/jf/smali/smaliParser.g:590:1: register_range : REGISTER ( DOTDOT REGISTER )? -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] REGISTER ( REGISTER )? ) ; public final smaliParser.register_range_return register_range() throws RecognitionException { smaliParser.register_range_return retval = new smaliParser.register_range_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token REGISTER179=null; Token DOTDOT180=null; Token REGISTER181=null; RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT"); RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); try { // org/jf/smali/smaliParser.g:591:2: ( REGISTER ( DOTDOT REGISTER )? -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] REGISTER ( REGISTER )? ) ) // org/jf/smali/smaliParser.g:591:4: REGISTER ( DOTDOT REGISTER )? { REGISTER179=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_range2186); stream_REGISTER.add(REGISTER179); // org/jf/smali/smaliParser.g:591:13: ( DOTDOT REGISTER )? int alt29=2; switch ( input.LA(1) ) { case DOTDOT: { alt29=1; } break; } switch (alt29) { case 1 : // org/jf/smali/smaliParser.g:591:14: DOTDOT REGISTER { DOTDOT180=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_register_range2189); stream_DOTDOT.add(DOTDOT180); REGISTER181=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_range2191); stream_REGISTER.add(REGISTER181); } break; } // AST REWRITE // elements: REGISTER, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 591:32: -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] REGISTER ( REGISTER )? ) { // org/jf/smali/smaliParser.g:591:35: ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] REGISTER ( REGISTER )? ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_RANGE, ((Token)retval.start), "I_REGISTER_RANGE"), root_1); adaptor.addChild(root_1, stream_REGISTER.nextNode()); // org/jf/smali/smaliParser.g:591:91: ( REGISTER )? if ( stream_REGISTER.hasNext() ) { adaptor.addChild(root_1, stream_REGISTER.nextNode()); } stream_REGISTER.reset(); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "register_range" public static class catch_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "catch_directive" // org/jf/smali/smaliParser.g:593:1: catch_directive : CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref_or_offset DOTDOT to= label_ref_or_offset CLOSE_BRACE using= label_ref_or_offset -> ^( I_CATCH[$start, \"I_CATCH\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] nonvoid_type_descriptor $from $to $using) ; public final smaliParser.catch_directive_return catch_directive() throws RecognitionException { smaliParser.catch_directive_return retval = new smaliParser.catch_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token CATCH_DIRECTIVE182=null; Token OPEN_BRACE184=null; Token DOTDOT185=null; Token CLOSE_BRACE186=null; smaliParser.label_ref_or_offset_return from = null; smaliParser.label_ref_or_offset_return to = null; smaliParser.label_ref_or_offset_return using = null; smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor183 = null; RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT"); RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE"); RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE"); RewriteRuleTokenStream stream_CATCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CATCH_DIRECTIVE"); RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); RewriteRuleSubtreeStream stream_label_ref_or_offset=new RewriteRuleSubtreeStream(adaptor,"rule label_ref_or_offset"); try { // org/jf/smali/smaliParser.g:594:2: ( CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref_or_offset DOTDOT to= label_ref_or_offset CLOSE_BRACE using= label_ref_or_offset -> ^( I_CATCH[$start, \"I_CATCH\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] nonvoid_type_descriptor $from $to $using) ) // org/jf/smali/smaliParser.g:594:4: CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref_or_offset DOTDOT to= label_ref_or_offset CLOSE_BRACE using= label_ref_or_offset { CATCH_DIRECTIVE182=(Token)match(input,CATCH_DIRECTIVE,FOLLOW_CATCH_DIRECTIVE_in_catch_directive2214); stream_CATCH_DIRECTIVE.add(CATCH_DIRECTIVE182); pushFollow(FOLLOW_nonvoid_type_descriptor_in_catch_directive2216); nonvoid_type_descriptor183=nonvoid_type_descriptor(); state._fsp--; stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor183.getTree()); OPEN_BRACE184=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_catch_directive2218); stream_OPEN_BRACE.add(OPEN_BRACE184); pushFollow(FOLLOW_label_ref_or_offset_in_catch_directive2222); from=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(from.getTree()); DOTDOT185=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_catch_directive2224); stream_DOTDOT.add(DOTDOT185); pushFollow(FOLLOW_label_ref_or_offset_in_catch_directive2228); to=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(to.getTree()); CLOSE_BRACE186=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_catch_directive2230); stream_CLOSE_BRACE.add(CLOSE_BRACE186); pushFollow(FOLLOW_label_ref_or_offset_in_catch_directive2234); using=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(using.getTree()); // AST REWRITE // elements: using, nonvoid_type_descriptor, to, from // token labels: // rule labels: to, retval, using, from // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_to=new RewriteRuleSubtreeStream(adaptor,"rule to",to!=null?to.tree:null); new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_using=new RewriteRuleSubtreeStream(adaptor,"rule using",using!=null?using.tree:null); RewriteRuleSubtreeStream stream_from=new RewriteRuleSubtreeStream(adaptor,"rule from",from!=null?from.tree:null); root_0 = (CommonTree)adaptor.nil(); // 595:3: -> ^( I_CATCH[$start, \"I_CATCH\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] nonvoid_type_descriptor $from $to $using) { // org/jf/smali/smaliParser.g:595:6: ^( I_CATCH[$start, \"I_CATCH\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] nonvoid_type_descriptor $from $to $using) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCH, ((Token)retval.start), "I_CATCH"), root_1); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); adaptor.addChild(root_1, stream_from.nextTree()); adaptor.addChild(root_1, stream_to.nextTree()); adaptor.addChild(root_1, stream_using.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "catch_directive" public static class catchall_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "catchall_directive" // org/jf/smali/smaliParser.g:597:1: catchall_directive : CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref_or_offset DOTDOT to= label_ref_or_offset CLOSE_BRACE using= label_ref_or_offset -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] $from $to $using) ; public final smaliParser.catchall_directive_return catchall_directive() throws RecognitionException { smaliParser.catchall_directive_return retval = new smaliParser.catchall_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token CATCHALL_DIRECTIVE187=null; Token OPEN_BRACE188=null; Token DOTDOT189=null; Token CLOSE_BRACE190=null; smaliParser.label_ref_or_offset_return from = null; smaliParser.label_ref_or_offset_return to = null; smaliParser.label_ref_or_offset_return using = null; RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT"); RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE"); RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE"); RewriteRuleTokenStream stream_CATCHALL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CATCHALL_DIRECTIVE"); RewriteRuleSubtreeStream stream_label_ref_or_offset=new RewriteRuleSubtreeStream(adaptor,"rule label_ref_or_offset"); try { // org/jf/smali/smaliParser.g:598:2: ( CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref_or_offset DOTDOT to= label_ref_or_offset CLOSE_BRACE using= label_ref_or_offset -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] $from $to $using) ) // org/jf/smali/smaliParser.g:598:4: CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref_or_offset DOTDOT to= label_ref_or_offset CLOSE_BRACE using= label_ref_or_offset { CATCHALL_DIRECTIVE187=(Token)match(input,CATCHALL_DIRECTIVE,FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive2266); stream_CATCHALL_DIRECTIVE.add(CATCHALL_DIRECTIVE187); OPEN_BRACE188=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_catchall_directive2268); stream_OPEN_BRACE.add(OPEN_BRACE188); pushFollow(FOLLOW_label_ref_or_offset_in_catchall_directive2272); from=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(from.getTree()); DOTDOT189=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_catchall_directive2274); stream_DOTDOT.add(DOTDOT189); pushFollow(FOLLOW_label_ref_or_offset_in_catchall_directive2278); to=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(to.getTree()); CLOSE_BRACE190=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_catchall_directive2280); stream_CLOSE_BRACE.add(CLOSE_BRACE190); pushFollow(FOLLOW_label_ref_or_offset_in_catchall_directive2284); using=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(using.getTree()); // AST REWRITE // elements: from, to, using // token labels: // rule labels: to, retval, using, from // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream stream_to=new RewriteRuleSubtreeStream(adaptor,"rule to",to!=null?to.tree:null); new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_using=new RewriteRuleSubtreeStream(adaptor,"rule using",using!=null?using.tree:null); RewriteRuleSubtreeStream stream_from=new RewriteRuleSubtreeStream(adaptor,"rule from",from!=null?from.tree:null); root_0 = (CommonTree)adaptor.nil(); // 599:3: -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] $from $to $using) { // org/jf/smali/smaliParser.g:599:6: ^( I_CATCHALL[$start, \"I_CATCHALL\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] $from $to $using) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCHALL, ((Token)retval.start), "I_CATCHALL"), root_1); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_1, stream_from.nextTree()); adaptor.addChild(root_1, stream_to.nextTree()); adaptor.addChild(root_1, stream_using.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "catchall_directive" public static class parameter_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "parameter_directive" // org/jf/smali/smaliParser.g:605:1: parameter_directive : PARAMETER_DIRECTIVE ( STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) ; public final smaliParser.parameter_directive_return parameter_directive() throws RecognitionException { smaliParser.parameter_directive_return retval = new smaliParser.parameter_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token PARAMETER_DIRECTIVE191=null; Token STRING_LITERAL192=null; Token END_PARAMETER_DIRECTIVE194=null; smaliParser.annotation_return annotation193 = null; RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_END_PARAMETER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_PARAMETER_DIRECTIVE"); RewriteRuleTokenStream stream_PARAMETER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PARAMETER_DIRECTIVE"); RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation"); List<CommonTree> annotations = new ArrayList<CommonTree>(); try { // org/jf/smali/smaliParser.g:607:2: ( PARAMETER_DIRECTIVE ( STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) ) // org/jf/smali/smaliParser.g:607:4: PARAMETER_DIRECTIVE ( STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) { PARAMETER_DIRECTIVE191=(Token)match(input,PARAMETER_DIRECTIVE,FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive2322); stream_PARAMETER_DIRECTIVE.add(PARAMETER_DIRECTIVE191); // org/jf/smali/smaliParser.g:608:3: ( STRING_LITERAL )? int alt30=2; switch ( input.LA(1) ) { case STRING_LITERAL: { alt30=1; } break; } switch (alt30) { case 1 : // org/jf/smali/smaliParser.g:608:3: STRING_LITERAL { STRING_LITERAL192=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_parameter_directive2326); stream_STRING_LITERAL.add(STRING_LITERAL192); } break; } // org/jf/smali/smaliParser.g:609:3: ({...}? annotation )* loop31: do { int alt31=2; alt31 = dfa31.predict(input); switch (alt31) { case 1 : // org/jf/smali/smaliParser.g:609:4: {...}? annotation { if ( !((input.LA(1) == ANNOTATION_DIRECTIVE)) ) { throw new FailedPredicateException(input, "parameter_directive", "input.LA(1) == ANNOTATION_DIRECTIVE"); } pushFollow(FOLLOW_annotation_in_parameter_directive2334); annotation193=annotation(); state._fsp--; stream_annotation.add(annotation193.getTree()); annotations.add((annotation193!=null?((CommonTree)annotation193.tree):null)); } break; default : break loop31; } } while (true); // org/jf/smali/smaliParser.g:611:3: ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) int alt32=2; switch ( input.LA(1) ) { case END_PARAMETER_DIRECTIVE: { alt32=1; } break; case SOURCE_DIRECTIVE: case ANNOTATION_DIRECTIVE: case END_METHOD_DIRECTIVE: case REGISTERS_DIRECTIVE: case LOCALS_DIRECTIVE: case ARRAY_DATA_DIRECTIVE: case PACKED_SWITCH_DIRECTIVE: case SPARSE_SWITCH_DIRECTIVE: case CATCH_DIRECTIVE: case CATCHALL_DIRECTIVE: case LINE_DIRECTIVE: case PARAMETER_DIRECTIVE: case LOCAL_DIRECTIVE: case END_LOCAL_DIRECTIVE: case RESTART_LOCAL_DIRECTIVE: case PROLOGUE_DIRECTIVE: case EPILOGUE_DIRECTIVE: case INSTRUCTION_FORMAT10t: case INSTRUCTION_FORMAT10x: case INSTRUCTION_FORMAT11n: case INSTRUCTION_FORMAT11x: case INSTRUCTION_FORMAT12x_OR_ID: case INSTRUCTION_FORMAT12x: case INSTRUCTION_FORMAT20t: case INSTRUCTION_FORMAT21c_FIELD: case INSTRUCTION_FORMAT21c_STRING: case INSTRUCTION_FORMAT21c_TYPE: case INSTRUCTION_FORMAT21h: case INSTRUCTION_FORMAT21s: case INSTRUCTION_FORMAT21t: case INSTRUCTION_FORMAT22b: case INSTRUCTION_FORMAT22c_FIELD: case INSTRUCTION_FORMAT22c_TYPE: case INSTRUCTION_FORMAT22cs_FIELD: case INSTRUCTION_FORMAT22s_OR_ID: case INSTRUCTION_FORMAT22s: case INSTRUCTION_FORMAT22t: case INSTRUCTION_FORMAT22x: case INSTRUCTION_FORMAT23x: case INSTRUCTION_FORMAT30t: case INSTRUCTION_FORMAT31c: case INSTRUCTION_FORMAT31i_OR_ID: case INSTRUCTION_FORMAT31i: case INSTRUCTION_FORMAT31t: case INSTRUCTION_FORMAT32x: case INSTRUCTION_FORMAT35c_METHOD: case INSTRUCTION_FORMAT35c_TYPE: case INSTRUCTION_FORMAT35s_METHOD: case INSTRUCTION_FORMAT35ms_METHOD: case INSTRUCTION_FORMAT3rc_METHOD: case INSTRUCTION_FORMAT3rc_TYPE: case INSTRUCTION_FORMAT3rms_METHOD: case INSTRUCTION_FORMAT51l: case COLON: { alt32=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 32, 0, input); throw nvae; } switch (alt32) { case 1 : // org/jf/smali/smaliParser.g:611:5: END_PARAMETER_DIRECTIVE { END_PARAMETER_DIRECTIVE194=(Token)match(input,END_PARAMETER_DIRECTIVE,FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive2345); stream_END_PARAMETER_DIRECTIVE.add(END_PARAMETER_DIRECTIVE194); // AST REWRITE // elements: annotation, STRING_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 612:4: -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) { // org/jf/smali/smaliParser.g:612:7: ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETER, ((Token)retval.start), "I_PARAMETER"), root_1); // org/jf/smali/smaliParser.g:612:44: ( STRING_LITERAL )? if ( stream_STRING_LITERAL.hasNext() ) { adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); } stream_STRING_LITERAL.reset(); // org/jf/smali/smaliParser.g:612:60: ^( I_ANNOTATIONS ( annotation )* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2); // org/jf/smali/smaliParser.g:612:76: ( annotation )* while ( stream_annotation.hasNext() ) { adaptor.addChild(root_2, stream_annotation.nextTree()); } stream_annotation.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:613:17: { ((statements_and_directives_scope)statements_and_directives_stack.peek()).methodAnnotations.addAll(annotations); // AST REWRITE // elements: STRING_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 614:4: -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) { // org/jf/smali/smaliParser.g:614:7: ^( I_PARAMETER[$start, \"I_PARAMETER\"] ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETER, ((Token)retval.start), "I_PARAMETER"), root_1); // org/jf/smali/smaliParser.g:614:44: ( STRING_LITERAL )? if ( stream_STRING_LITERAL.hasNext() ) { adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); } stream_STRING_LITERAL.reset(); // org/jf/smali/smaliParser.g:614:60: ^( I_ANNOTATIONS ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "parameter_directive" public static class ordered_debug_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "ordered_debug_directive" // org/jf/smali/smaliParser.g:617:1: ordered_debug_directive : ( line_directive | local_directive | end_local_directive | restart_local_directive | prologue_directive | epilogue_directive | source_directive ); public final smaliParser.ordered_debug_directive_return ordered_debug_directive() throws RecognitionException { smaliParser.ordered_debug_directive_return retval = new smaliParser.ordered_debug_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; smaliParser.line_directive_return line_directive195 = null; smaliParser.local_directive_return local_directive196 = null; smaliParser.end_local_directive_return end_local_directive197 = null; smaliParser.restart_local_directive_return restart_local_directive198 = null; smaliParser.prologue_directive_return prologue_directive199 = null; smaliParser.epilogue_directive_return epilogue_directive200 = null; smaliParser.source_directive_return source_directive201 = null; try { // org/jf/smali/smaliParser.g:618:2: ( line_directive | local_directive | end_local_directive | restart_local_directive | prologue_directive | epilogue_directive | source_directive ) int alt33=7; switch ( input.LA(1) ) { case LINE_DIRECTIVE: { alt33=1; } break; case LOCAL_DIRECTIVE: { alt33=2; } break; case END_LOCAL_DIRECTIVE: { alt33=3; } break; case RESTART_LOCAL_DIRECTIVE: { alt33=4; } break; case PROLOGUE_DIRECTIVE: { alt33=5; } break; case EPILOGUE_DIRECTIVE: { alt33=6; } break; case SOURCE_DIRECTIVE: { alt33=7; } break; default: NoViableAltException nvae = new NoViableAltException("", 33, 0, input); throw nvae; } switch (alt33) { case 1 : // org/jf/smali/smaliParser.g:618:4: line_directive { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_line_directive_in_ordered_debug_directive2403); line_directive195=line_directive(); state._fsp--; adaptor.addChild(root_0, line_directive195.getTree()); } break; case 2 : // org/jf/smali/smaliParser.g:619:4: local_directive { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_local_directive_in_ordered_debug_directive2408); local_directive196=local_directive(); state._fsp--; adaptor.addChild(root_0, local_directive196.getTree()); } break; case 3 : // org/jf/smali/smaliParser.g:620:4: end_local_directive { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_end_local_directive_in_ordered_debug_directive2413); end_local_directive197=end_local_directive(); state._fsp--; adaptor.addChild(root_0, end_local_directive197.getTree()); } break; case 4 : // org/jf/smali/smaliParser.g:621:4: restart_local_directive { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_restart_local_directive_in_ordered_debug_directive2418); restart_local_directive198=restart_local_directive(); state._fsp--; adaptor.addChild(root_0, restart_local_directive198.getTree()); } break; case 5 : // org/jf/smali/smaliParser.g:622:4: prologue_directive { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_prologue_directive_in_ordered_debug_directive2423); prologue_directive199=prologue_directive(); state._fsp--; adaptor.addChild(root_0, prologue_directive199.getTree()); } break; case 6 : // org/jf/smali/smaliParser.g:623:4: epilogue_directive { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_epilogue_directive_in_ordered_debug_directive2428); epilogue_directive200=epilogue_directive(); state._fsp--; adaptor.addChild(root_0, epilogue_directive200.getTree()); } break; case 7 : // org/jf/smali/smaliParser.g:624:4: source_directive { root_0 = (CommonTree)adaptor.nil(); pushFollow(FOLLOW_source_directive_in_ordered_debug_directive2433); source_directive201=source_directive(); state._fsp--; adaptor.addChild(root_0, source_directive201.getTree()); } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "ordered_debug_directive" public static class line_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "line_directive" // org/jf/smali/smaliParser.g:626:1: line_directive : LINE_DIRECTIVE integral_literal -> ^( I_LINE integral_literal I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ; public final smaliParser.line_directive_return line_directive() throws RecognitionException { smaliParser.line_directive_return retval = new smaliParser.line_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LINE_DIRECTIVE202=null; smaliParser.integral_literal_return integral_literal203 = null; RewriteRuleTokenStream stream_LINE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LINE_DIRECTIVE"); RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal"); try { // org/jf/smali/smaliParser.g:627:2: ( LINE_DIRECTIVE integral_literal -> ^( I_LINE integral_literal I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ) // org/jf/smali/smaliParser.g:627:4: LINE_DIRECTIVE integral_literal { LINE_DIRECTIVE202=(Token)match(input,LINE_DIRECTIVE,FOLLOW_LINE_DIRECTIVE_in_line_directive2442); stream_LINE_DIRECTIVE.add(LINE_DIRECTIVE202); pushFollow(FOLLOW_integral_literal_in_line_directive2444); integral_literal203=integral_literal(); state._fsp--; stream_integral_literal.add(integral_literal203.getTree()); // AST REWRITE // elements: integral_literal // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 628:3: -> ^( I_LINE integral_literal I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { // org/jf/smali/smaliParser.g:628:6: ^( I_LINE integral_literal I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LINE, "I_LINE"), root_1); adaptor.addChild(root_1, stream_integral_literal.nextTree()); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "line_directive" public static class local_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "local_directive" // org/jf/smali/smaliParser.g:630:1: local_directive : LOCAL_DIRECTIVE REGISTER COMMA simple_name COLON nonvoid_type_descriptor ( COMMA STRING_LITERAL )? -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER simple_name nonvoid_type_descriptor ( STRING_LITERAL )? I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ; public final smaliParser.local_directive_return local_directive() throws RecognitionException { smaliParser.local_directive_return retval = new smaliParser.local_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token LOCAL_DIRECTIVE204=null; Token REGISTER205=null; Token COMMA206=null; Token COLON208=null; Token COMMA210=null; Token STRING_LITERAL211=null; smaliParser.simple_name_return simple_name207 = null; smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor209 = null; RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON"); RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LOCAL_DIRECTIVE"); RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name"); try { // org/jf/smali/smaliParser.g:631:2: ( LOCAL_DIRECTIVE REGISTER COMMA simple_name COLON nonvoid_type_descriptor ( COMMA STRING_LITERAL )? -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER simple_name nonvoid_type_descriptor ( STRING_LITERAL )? I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ) // org/jf/smali/smaliParser.g:631:4: LOCAL_DIRECTIVE REGISTER COMMA simple_name COLON nonvoid_type_descriptor ( COMMA STRING_LITERAL )? { LOCAL_DIRECTIVE204=(Token)match(input,LOCAL_DIRECTIVE,FOLLOW_LOCAL_DIRECTIVE_in_local_directive2466); stream_LOCAL_DIRECTIVE.add(LOCAL_DIRECTIVE204); REGISTER205=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_local_directive2468); stream_REGISTER.add(REGISTER205); COMMA206=(Token)match(input,COMMA,FOLLOW_COMMA_in_local_directive2470); stream_COMMA.add(COMMA206); pushFollow(FOLLOW_simple_name_in_local_directive2472); simple_name207=simple_name(); state._fsp--; stream_simple_name.add(simple_name207.getTree()); COLON208=(Token)match(input,COLON,FOLLOW_COLON_in_local_directive2474); stream_COLON.add(COLON208); pushFollow(FOLLOW_nonvoid_type_descriptor_in_local_directive2476); nonvoid_type_descriptor209=nonvoid_type_descriptor(); state._fsp--; stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor209.getTree()); // org/jf/smali/smaliParser.g:631:77: ( COMMA STRING_LITERAL )? int alt34=2; switch ( input.LA(1) ) { case COMMA: { alt34=1; } break; } switch (alt34) { case 1 : // org/jf/smali/smaliParser.g:631:78: COMMA STRING_LITERAL { COMMA210=(Token)match(input,COMMA,FOLLOW_COMMA_in_local_directive2479); stream_COMMA.add(COMMA210); STRING_LITERAL211=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_local_directive2481); stream_STRING_LITERAL.add(STRING_LITERAL211); } break; } // AST REWRITE // elements: simple_name, REGISTER, nonvoid_type_descriptor, STRING_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 632:3: -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER simple_name nonvoid_type_descriptor ( STRING_LITERAL )? I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { // org/jf/smali/smaliParser.g:632:6: ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER simple_name nonvoid_type_descriptor ( STRING_LITERAL )? I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LOCAL, ((Token)retval.start), "I_LOCAL"), root_1); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_simple_name.nextTree()); adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); // org/jf/smali/smaliParser.g:632:80: ( STRING_LITERAL )? if ( stream_STRING_LITERAL.hasNext() ) { adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); } stream_STRING_LITERAL.reset(); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "local_directive" public static class end_local_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "end_local_directive" // org/jf/smali/smaliParser.g:634:1: end_local_directive : END_LOCAL_DIRECTIVE REGISTER -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ; public final smaliParser.end_local_directive_return end_local_directive() throws RecognitionException { smaliParser.end_local_directive_return retval = new smaliParser.end_local_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token END_LOCAL_DIRECTIVE212=null; Token REGISTER213=null; RewriteRuleTokenStream stream_END_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_LOCAL_DIRECTIVE"); RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); try { // org/jf/smali/smaliParser.g:635:2: ( END_LOCAL_DIRECTIVE REGISTER -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ) // org/jf/smali/smaliParser.g:635:4: END_LOCAL_DIRECTIVE REGISTER { END_LOCAL_DIRECTIVE212=(Token)match(input,END_LOCAL_DIRECTIVE,FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive2513); stream_END_LOCAL_DIRECTIVE.add(END_LOCAL_DIRECTIVE212); REGISTER213=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_end_local_directive2515); stream_REGISTER.add(REGISTER213); // AST REWRITE // elements: REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 636:3: -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { // org/jf/smali/smaliParser.g:636:6: ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_END_LOCAL, ((Token)retval.start), "I_END_LOCAL"), root_1); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "end_local_directive" public static class restart_local_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "restart_local_directive" // org/jf/smali/smaliParser.g:638:1: restart_local_directive : RESTART_LOCAL_DIRECTIVE REGISTER -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ; public final smaliParser.restart_local_directive_return restart_local_directive() throws RecognitionException { smaliParser.restart_local_directive_return retval = new smaliParser.restart_local_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token RESTART_LOCAL_DIRECTIVE214=null; Token REGISTER215=null; RewriteRuleTokenStream stream_RESTART_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token RESTART_LOCAL_DIRECTIVE"); RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); try { // org/jf/smali/smaliParser.g:639:2: ( RESTART_LOCAL_DIRECTIVE REGISTER -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ) // org/jf/smali/smaliParser.g:639:4: RESTART_LOCAL_DIRECTIVE REGISTER { RESTART_LOCAL_DIRECTIVE214=(Token)match(input,RESTART_LOCAL_DIRECTIVE,FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive2538); stream_RESTART_LOCAL_DIRECTIVE.add(RESTART_LOCAL_DIRECTIVE214); REGISTER215=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_restart_local_directive2540); stream_REGISTER.add(REGISTER215); // AST REWRITE // elements: REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 640:3: -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { // org/jf/smali/smaliParser.g:640:6: ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_RESTART_LOCAL, ((Token)retval.start), "I_RESTART_LOCAL"), root_1); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "restart_local_directive" public static class prologue_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "prologue_directive" // org/jf/smali/smaliParser.g:642:1: prologue_directive : PROLOGUE_DIRECTIVE -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ; public final smaliParser.prologue_directive_return prologue_directive() throws RecognitionException { smaliParser.prologue_directive_return retval = new smaliParser.prologue_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token PROLOGUE_DIRECTIVE216=null; RewriteRuleTokenStream stream_PROLOGUE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PROLOGUE_DIRECTIVE"); try { // org/jf/smali/smaliParser.g:643:2: ( PROLOGUE_DIRECTIVE -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ) // org/jf/smali/smaliParser.g:643:4: PROLOGUE_DIRECTIVE { PROLOGUE_DIRECTIVE216=(Token)match(input,PROLOGUE_DIRECTIVE,FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive2563); stream_PROLOGUE_DIRECTIVE.add(PROLOGUE_DIRECTIVE216); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 644:3: -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { // org/jf/smali/smaliParser.g:644:6: ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PROLOGUE, ((Token)retval.start), "I_PROLOGUE"), root_1); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "prologue_directive" public static class epilogue_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "epilogue_directive" // org/jf/smali/smaliParser.g:646:1: epilogue_directive : EPILOGUE_DIRECTIVE -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ; public final smaliParser.epilogue_directive_return epilogue_directive() throws RecognitionException { smaliParser.epilogue_directive_return retval = new smaliParser.epilogue_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token EPILOGUE_DIRECTIVE217=null; RewriteRuleTokenStream stream_EPILOGUE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token EPILOGUE_DIRECTIVE"); try { // org/jf/smali/smaliParser.g:647:2: ( EPILOGUE_DIRECTIVE -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ) // org/jf/smali/smaliParser.g:647:4: EPILOGUE_DIRECTIVE { EPILOGUE_DIRECTIVE217=(Token)match(input,EPILOGUE_DIRECTIVE,FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive2584); stream_EPILOGUE_DIRECTIVE.add(EPILOGUE_DIRECTIVE217); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 648:3: -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { // org/jf/smali/smaliParser.g:648:6: ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_EPILOGUE, ((Token)retval.start), "I_EPILOGUE"), root_1); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "epilogue_directive" public static class source_directive_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "source_directive" // org/jf/smali/smaliParser.g:650:1: source_directive : SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ; public final smaliParser.source_directive_return source_directive() throws RecognitionException { smaliParser.source_directive_return retval = new smaliParser.source_directive_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token SOURCE_DIRECTIVE218=null; Token STRING_LITERAL219=null; RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_SOURCE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SOURCE_DIRECTIVE"); try { // org/jf/smali/smaliParser.g:651:2: ( SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) ) // org/jf/smali/smaliParser.g:651:4: SOURCE_DIRECTIVE STRING_LITERAL { SOURCE_DIRECTIVE218=(Token)match(input,SOURCE_DIRECTIVE,FOLLOW_SOURCE_DIRECTIVE_in_source_directive2605); stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE218); STRING_LITERAL219=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_source_directive2607); stream_STRING_LITERAL.add(STRING_LITERAL219); // AST REWRITE // elements: STRING_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 652:3: -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { // org/jf/smali/smaliParser.g:652:6: ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL I_ADDRESS[$start, Integer.toString($method::currentAddress)] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SOURCE, ((Token)retval.start), "I_SOURCE"), root_1); adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_ADDRESS, ((Token)retval.start), Integer.toString(((method_scope)method_stack.peek()).currentAddress))); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "source_directive" public static class instruction_format12x_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "instruction_format12x" // org/jf/smali/smaliParser.g:654:1: instruction_format12x : ( INSTRUCTION_FORMAT12x | INSTRUCTION_FORMAT12x_OR_ID -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] ); public final smaliParser.instruction_format12x_return instruction_format12x() throws RecognitionException { smaliParser.instruction_format12x_return retval = new smaliParser.instruction_format12x_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token INSTRUCTION_FORMAT12x220=null; Token INSTRUCTION_FORMAT12x_OR_ID221=null; CommonTree INSTRUCTION_FORMAT12x220_tree=null; RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT12x_OR_ID"); try { // org/jf/smali/smaliParser.g:655:2: ( INSTRUCTION_FORMAT12x | INSTRUCTION_FORMAT12x_OR_ID -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] ) int alt35=2; switch ( input.LA(1) ) { case INSTRUCTION_FORMAT12x: { alt35=1; } break; case INSTRUCTION_FORMAT12x_OR_ID: { alt35=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 35, 0, input); throw nvae; } switch (alt35) { case 1 : // org/jf/smali/smaliParser.g:655:4: INSTRUCTION_FORMAT12x { root_0 = (CommonTree)adaptor.nil(); INSTRUCTION_FORMAT12x220=(Token)match(input,INSTRUCTION_FORMAT12x,FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x2630); INSTRUCTION_FORMAT12x220_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT12x220); adaptor.addChild(root_0, INSTRUCTION_FORMAT12x220_tree); } break; case 2 : // org/jf/smali/smaliParser.g:656:4: INSTRUCTION_FORMAT12x_OR_ID { INSTRUCTION_FORMAT12x_OR_ID221=(Token)match(input,INSTRUCTION_FORMAT12x_OR_ID,FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x2635); stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID221); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 656:32: -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT12x, INSTRUCTION_FORMAT12x_OR_ID221)); } retval.tree = root_0; } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "instruction_format12x" public static class instruction_format22s_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "instruction_format22s" // org/jf/smali/smaliParser.g:658:1: instruction_format22s : ( INSTRUCTION_FORMAT22s | INSTRUCTION_FORMAT22s_OR_ID -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] ); public final smaliParser.instruction_format22s_return instruction_format22s() throws RecognitionException { smaliParser.instruction_format22s_return retval = new smaliParser.instruction_format22s_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token INSTRUCTION_FORMAT22s222=null; Token INSTRUCTION_FORMAT22s_OR_ID223=null; CommonTree INSTRUCTION_FORMAT22s222_tree=null; RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22s_OR_ID"); try { // org/jf/smali/smaliParser.g:659:2: ( INSTRUCTION_FORMAT22s | INSTRUCTION_FORMAT22s_OR_ID -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] ) int alt36=2; switch ( input.LA(1) ) { case INSTRUCTION_FORMAT22s: { alt36=1; } break; case INSTRUCTION_FORMAT22s_OR_ID: { alt36=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 36, 0, input); throw nvae; } switch (alt36) { case 1 : // org/jf/smali/smaliParser.g:659:4: INSTRUCTION_FORMAT22s { root_0 = (CommonTree)adaptor.nil(); INSTRUCTION_FORMAT22s222=(Token)match(input,INSTRUCTION_FORMAT22s,FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s2649); INSTRUCTION_FORMAT22s222_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT22s222); adaptor.addChild(root_0, INSTRUCTION_FORMAT22s222_tree); } break; case 2 : // org/jf/smali/smaliParser.g:660:4: INSTRUCTION_FORMAT22s_OR_ID { INSTRUCTION_FORMAT22s_OR_ID223=(Token)match(input,INSTRUCTION_FORMAT22s_OR_ID,FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s2654); stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID223); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 660:32: -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT22s, INSTRUCTION_FORMAT22s_OR_ID223)); } retval.tree = root_0; } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "instruction_format22s" public static class instruction_format31i_return extends ParserRuleReturnScope { CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "instruction_format31i" // org/jf/smali/smaliParser.g:662:1: instruction_format31i : ( INSTRUCTION_FORMAT31i | INSTRUCTION_FORMAT31i_OR_ID -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] ); public final smaliParser.instruction_format31i_return instruction_format31i() throws RecognitionException { smaliParser.instruction_format31i_return retval = new smaliParser.instruction_format31i_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token INSTRUCTION_FORMAT31i224=null; Token INSTRUCTION_FORMAT31i_OR_ID225=null; CommonTree INSTRUCTION_FORMAT31i224_tree=null; RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31i_OR_ID"); try { // org/jf/smali/smaliParser.g:663:2: ( INSTRUCTION_FORMAT31i | INSTRUCTION_FORMAT31i_OR_ID -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] ) int alt37=2; switch ( input.LA(1) ) { case INSTRUCTION_FORMAT31i: { alt37=1; } break; case INSTRUCTION_FORMAT31i_OR_ID: { alt37=2; } break; default: NoViableAltException nvae = new NoViableAltException("", 37, 0, input); throw nvae; } switch (alt37) { case 1 : // org/jf/smali/smaliParser.g:663:4: INSTRUCTION_FORMAT31i { root_0 = (CommonTree)adaptor.nil(); INSTRUCTION_FORMAT31i224=(Token)match(input,INSTRUCTION_FORMAT31i,FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i2668); INSTRUCTION_FORMAT31i224_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT31i224); adaptor.addChild(root_0, INSTRUCTION_FORMAT31i224_tree); } break; case 2 : // org/jf/smali/smaliParser.g:664:4: INSTRUCTION_FORMAT31i_OR_ID { INSTRUCTION_FORMAT31i_OR_ID225=(Token)match(input,INSTRUCTION_FORMAT31i_OR_ID,FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i2673); stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID225); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 664:32: -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] { adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT31i, INSTRUCTION_FORMAT31i_OR_ID225)); } retval.tree = root_0; } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "instruction_format31i" public static class instruction_return extends ParserRuleReturnScope { public int size; CommonTree tree; public Object getTree() { return tree; } }; // $ANTLR start "instruction" // org/jf/smali/smaliParser.g:666:1: instruction returns [int size] : ( INSTRUCTION_FORMAT10t label_ref_or_offset -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref_or_offset ) | INSTRUCTION_FORMAT10x -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) | INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) | INSTRUCTION_FORMAT11x REGISTER -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) | instruction_format12x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) | INSTRUCTION_FORMAT20t label_ref_or_offset -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref_or_offset ) | INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA fully_qualified_field -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER fully_qualified_field ) | INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) | INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA reference_type_descriptor -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER reference_type_descriptor ) | INSTRUCTION_FORMAT21h REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21h[$start, \"I_STATEMENT_FORMAT21h\"] INSTRUCTION_FORMAT21h REGISTER integral_literal ) | INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) | INSTRUCTION_FORMAT21t REGISTER COMMA ( label_ref_or_offset ) -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref_or_offset ) | INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) | INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA fully_qualified_field -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER fully_qualified_field ) | 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 ) | INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET | instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) | INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref_or_offset -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref_or_offset ) | INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) | INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) | INSTRUCTION_FORMAT30t label_ref_or_offset -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref_or_offset ) | INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) | instruction_format31i REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) | INSTRUCTION_FORMAT31t REGISTER COMMA label_ref_or_offset -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref_or_offset ) | INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) | INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA fully_qualified_method -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list fully_qualified_method ) | 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 ) | INSTRUCTION_FORMAT35s_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA fully_qualified_method | INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_OFFSET | INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA fully_qualified_method -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range fully_qualified_method ) | 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 ) | INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_OFFSET | INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) | ARRAY_DATA_DIRECTIVE integral_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE -> {needsNop}? ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE integral_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE integral_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) | PACKED_SWITCH_DIRECTIVE fixed_32bit_literal (switch_target+= label_ref_or_offset )* END_PACKED_SWITCH_DIRECTIVE -> {needsNop}? ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) ^( 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_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) ) -> ^( 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_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) ) | SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW switch_target+= label_ref_or_offset )* END_SPARSE_SWITCH_DIRECTIVE -> {needsNop}? ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] I_SPARSE_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) ) -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] I_SPARSE_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) ) ); public final smaliParser.instruction_return instruction() throws RecognitionException { smaliParser.instruction_return retval = new smaliParser.instruction_return(); retval.start = input.LT(1); CommonTree root_0 = null; Token INSTRUCTION_FORMAT10t226=null; Token INSTRUCTION_FORMAT10x228=null; Token INSTRUCTION_FORMAT11n229=null; Token REGISTER230=null; Token COMMA231=null; Token INSTRUCTION_FORMAT11x233=null; Token REGISTER234=null; Token REGISTER236=null; Token COMMA237=null; Token REGISTER238=null; Token INSTRUCTION_FORMAT20t239=null; Token INSTRUCTION_FORMAT21c_FIELD241=null; Token REGISTER242=null; Token COMMA243=null; Token INSTRUCTION_FORMAT21c_STRING245=null; Token REGISTER246=null; Token COMMA247=null; Token STRING_LITERAL248=null; Token INSTRUCTION_FORMAT21c_TYPE249=null; Token REGISTER250=null; Token COMMA251=null; Token INSTRUCTION_FORMAT21h253=null; Token REGISTER254=null; Token COMMA255=null; Token INSTRUCTION_FORMAT21s257=null; Token REGISTER258=null; Token COMMA259=null; Token INSTRUCTION_FORMAT21t261=null; Token REGISTER262=null; Token COMMA263=null; Token INSTRUCTION_FORMAT22b265=null; Token REGISTER266=null; Token COMMA267=null; Token REGISTER268=null; Token COMMA269=null; Token INSTRUCTION_FORMAT22c_FIELD271=null; Token REGISTER272=null; Token COMMA273=null; Token REGISTER274=null; Token COMMA275=null; Token INSTRUCTION_FORMAT22c_TYPE277=null; Token REGISTER278=null; Token COMMA279=null; Token REGISTER280=null; Token COMMA281=null; Token INSTRUCTION_FORMAT22cs_FIELD283=null; Token REGISTER284=null; Token COMMA285=null; Token REGISTER286=null; Token COMMA287=null; Token FIELD_OFFSET288=null; Token REGISTER290=null; Token COMMA291=null; Token REGISTER292=null; Token COMMA293=null; Token INSTRUCTION_FORMAT22t295=null; Token REGISTER296=null; Token COMMA297=null; Token REGISTER298=null; Token COMMA299=null; Token INSTRUCTION_FORMAT22x301=null; Token REGISTER302=null; Token COMMA303=null; Token REGISTER304=null; Token INSTRUCTION_FORMAT23x305=null; Token REGISTER306=null; Token COMMA307=null; Token REGISTER308=null; Token COMMA309=null; Token REGISTER310=null; Token INSTRUCTION_FORMAT30t311=null; Token INSTRUCTION_FORMAT31c313=null; Token REGISTER314=null; Token COMMA315=null; Token STRING_LITERAL316=null; Token REGISTER318=null; Token COMMA319=null; Token INSTRUCTION_FORMAT31t321=null; Token REGISTER322=null; Token COMMA323=null; Token INSTRUCTION_FORMAT32x325=null; Token REGISTER326=null; Token COMMA327=null; Token REGISTER328=null; Token INSTRUCTION_FORMAT35c_METHOD329=null; Token OPEN_BRACE330=null; Token CLOSE_BRACE332=null; Token COMMA333=null; Token INSTRUCTION_FORMAT35c_TYPE335=null; Token OPEN_BRACE336=null; Token CLOSE_BRACE338=null; Token COMMA339=null; Token INSTRUCTION_FORMAT35s_METHOD341=null; Token OPEN_BRACE342=null; Token CLOSE_BRACE344=null; Token COMMA345=null; Token INSTRUCTION_FORMAT35ms_METHOD347=null; Token OPEN_BRACE348=null; Token CLOSE_BRACE350=null; Token COMMA351=null; Token VTABLE_OFFSET352=null; Token INSTRUCTION_FORMAT3rc_METHOD353=null; Token OPEN_BRACE354=null; Token CLOSE_BRACE356=null; Token COMMA357=null; Token INSTRUCTION_FORMAT3rc_TYPE359=null; Token OPEN_BRACE360=null; Token CLOSE_BRACE362=null; Token COMMA363=null; Token INSTRUCTION_FORMAT3rms_METHOD365=null; Token OPEN_BRACE366=null; Token CLOSE_BRACE368=null; Token COMMA369=null; Token VTABLE_OFFSET370=null; Token INSTRUCTION_FORMAT51l371=null; Token REGISTER372=null; Token COMMA373=null; Token ARRAY_DATA_DIRECTIVE375=null; Token END_ARRAY_DATA_DIRECTIVE378=null; Token PACKED_SWITCH_DIRECTIVE379=null; Token END_PACKED_SWITCH_DIRECTIVE381=null; Token SPARSE_SWITCH_DIRECTIVE382=null; Token ARROW384=null; Token END_SPARSE_SWITCH_DIRECTIVE385=null; List<Object> list_switch_target=null; smaliParser.label_ref_or_offset_return label_ref_or_offset227 = null; smaliParser.integral_literal_return integral_literal232 = null; smaliParser.instruction_format12x_return instruction_format12x235 = null; smaliParser.label_ref_or_offset_return label_ref_or_offset240 = null; smaliParser.fully_qualified_field_return fully_qualified_field244 = null; smaliParser.reference_type_descriptor_return reference_type_descriptor252 = null; smaliParser.integral_literal_return integral_literal256 = null; smaliParser.integral_literal_return integral_literal260 = null; smaliParser.label_ref_or_offset_return label_ref_or_offset264 = null; smaliParser.integral_literal_return integral_literal270 = null; smaliParser.fully_qualified_field_return fully_qualified_field276 = null; smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor282 = null; smaliParser.instruction_format22s_return instruction_format22s289 = null; smaliParser.integral_literal_return integral_literal294 = null; smaliParser.label_ref_or_offset_return label_ref_or_offset300 = null; smaliParser.label_ref_or_offset_return label_ref_or_offset312 = null; smaliParser.instruction_format31i_return instruction_format31i317 = null; smaliParser.fixed_32bit_literal_return fixed_32bit_literal320 = null; smaliParser.label_ref_or_offset_return label_ref_or_offset324 = null; smaliParser.register_list_return register_list331 = null; smaliParser.fully_qualified_method_return fully_qualified_method334 = null; smaliParser.register_list_return register_list337 = null; smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor340 = null; smaliParser.register_list_return register_list343 = null; smaliParser.fully_qualified_method_return fully_qualified_method346 = null; smaliParser.register_list_return register_list349 = null; smaliParser.register_range_return register_range355 = null; smaliParser.fully_qualified_method_return fully_qualified_method358 = null; smaliParser.register_range_return register_range361 = null; smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor364 = null; smaliParser.register_range_return register_range367 = null; smaliParser.fixed_literal_return fixed_literal374 = null; smaliParser.integral_literal_return integral_literal376 = null; smaliParser.fixed_literal_return fixed_literal377 = null; smaliParser.fixed_32bit_literal_return fixed_32bit_literal380 = null; smaliParser.fixed_32bit_literal_return fixed_32bit_literal383 = null; RuleReturnScope switch_target = null; CommonTree INSTRUCTION_FORMAT22cs_FIELD283_tree=null; CommonTree REGISTER284_tree=null; CommonTree COMMA285_tree=null; CommonTree REGISTER286_tree=null; CommonTree COMMA287_tree=null; CommonTree FIELD_OFFSET288_tree=null; CommonTree INSTRUCTION_FORMAT35s_METHOD341_tree=null; CommonTree OPEN_BRACE342_tree=null; CommonTree CLOSE_BRACE344_tree=null; CommonTree COMMA345_tree=null; CommonTree INSTRUCTION_FORMAT35ms_METHOD347_tree=null; CommonTree OPEN_BRACE348_tree=null; CommonTree CLOSE_BRACE350_tree=null; CommonTree COMMA351_tree=null; CommonTree VTABLE_OFFSET352_tree=null; CommonTree INSTRUCTION_FORMAT3rms_METHOD365_tree=null; CommonTree OPEN_BRACE366_tree=null; CommonTree CLOSE_BRACE368_tree=null; CommonTree COMMA369_tree=null; CommonTree VTABLE_OFFSET370_tree=null; RewriteRuleTokenStream stream_SPARSE_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SPARSE_SWITCH_DIRECTIVE"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_TYPE"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31c=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31c"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21h=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21h"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT3rc_METHOD"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21s=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21s"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11x"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21t"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_TYPE"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT51l"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT23x"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT30t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT30t"); RewriteRuleTokenStream stream_END_PACKED_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_PACKED_SWITCH_DIRECTIVE"); RewriteRuleTokenStream stream_END_SPARSE_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_SPARSE_SWITCH_DIRECTIVE"); RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE"); RewriteRuleTokenStream stream_END_ARRAY_DATA_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_ARRAY_DATA_DIRECTIVE"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11n=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11n"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22b=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22b"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_STRING"); RewriteRuleTokenStream stream_PACKED_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PACKED_SWITCH_DIRECTIVE"); RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL"); RewriteRuleTokenStream stream_ARRAY_DATA_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ARRAY_DATA_DIRECTIVE"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT20t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT20t"); RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22t"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31t"); RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22x"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10t"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT3rc_TYPE"); RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_TYPE"); RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER"); RewriteRuleTokenStream stream_INSTRUCTION_FORMAT32x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT32x"); RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor"); RewriteRuleSubtreeStream stream_instruction_format31i=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format31i"); RewriteRuleSubtreeStream stream_instruction_format22s=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format22s"); RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal"); RewriteRuleSubtreeStream stream_fixed_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_literal"); RewriteRuleSubtreeStream stream_label_ref_or_offset=new RewriteRuleSubtreeStream(adaptor,"rule label_ref_or_offset"); RewriteRuleSubtreeStream stream_fully_qualified_method=new RewriteRuleSubtreeStream(adaptor,"rule fully_qualified_method"); RewriteRuleSubtreeStream stream_register_range=new RewriteRuleSubtreeStream(adaptor,"rule register_range"); RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal"); RewriteRuleSubtreeStream stream_instruction_format12x=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format12x"); RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor"); RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list"); RewriteRuleSubtreeStream stream_fully_qualified_field=new RewriteRuleSubtreeStream(adaptor,"rule fully_qualified_field"); boolean needsNop = false; int targetCount = 0; try { // org/jf/smali/smaliParser.g:668:2: ( INSTRUCTION_FORMAT10t label_ref_or_offset -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref_or_offset ) | INSTRUCTION_FORMAT10x -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) | INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) | INSTRUCTION_FORMAT11x REGISTER -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) | instruction_format12x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) | INSTRUCTION_FORMAT20t label_ref_or_offset -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref_or_offset ) | INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA fully_qualified_field -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER fully_qualified_field ) | INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) | INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA reference_type_descriptor -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER reference_type_descriptor ) | INSTRUCTION_FORMAT21h REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21h[$start, \"I_STATEMENT_FORMAT21h\"] INSTRUCTION_FORMAT21h REGISTER integral_literal ) | INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) | INSTRUCTION_FORMAT21t REGISTER COMMA ( label_ref_or_offset ) -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref_or_offset ) | INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) | INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA fully_qualified_field -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER fully_qualified_field ) | 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 ) | INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET | instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) | INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref_or_offset -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref_or_offset ) | INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) | INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) | INSTRUCTION_FORMAT30t label_ref_or_offset -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref_or_offset ) | INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) | instruction_format31i REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) | INSTRUCTION_FORMAT31t REGISTER COMMA label_ref_or_offset -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref_or_offset ) | INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) | INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA fully_qualified_method -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list fully_qualified_method ) | 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 ) | INSTRUCTION_FORMAT35s_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA fully_qualified_method | INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_OFFSET | INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA fully_qualified_method -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range fully_qualified_method ) | 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 ) | INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_OFFSET | INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) | ARRAY_DATA_DIRECTIVE integral_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE -> {needsNop}? ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE integral_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE integral_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) | PACKED_SWITCH_DIRECTIVE fixed_32bit_literal (switch_target+= label_ref_or_offset )* END_PACKED_SWITCH_DIRECTIVE -> {needsNop}? ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) ^( 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_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) ) -> ^( 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_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) ) | SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW switch_target+= label_ref_or_offset )* END_SPARSE_SWITCH_DIRECTIVE -> {needsNop}? ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] I_SPARSE_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) ) -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] I_SPARSE_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) ) ) int alt41=36; switch ( input.LA(1) ) { case INSTRUCTION_FORMAT10t: { alt41=1; } break; case INSTRUCTION_FORMAT10x: { alt41=2; } break; case INSTRUCTION_FORMAT11n: { alt41=3; } break; case INSTRUCTION_FORMAT11x: { alt41=4; } break; case INSTRUCTION_FORMAT12x_OR_ID: case INSTRUCTION_FORMAT12x: { alt41=5; } break; case INSTRUCTION_FORMAT20t: { alt41=6; } break; case INSTRUCTION_FORMAT21c_FIELD: { alt41=7; } break; case INSTRUCTION_FORMAT21c_STRING: { alt41=8; } break; case INSTRUCTION_FORMAT21c_TYPE: { alt41=9; } break; case INSTRUCTION_FORMAT21h: { alt41=10; } break; case INSTRUCTION_FORMAT21s: { alt41=11; } break; case INSTRUCTION_FORMAT21t: { alt41=12; } break; case INSTRUCTION_FORMAT22b: { alt41=13; } break; case INSTRUCTION_FORMAT22c_FIELD: { alt41=14; } break; case INSTRUCTION_FORMAT22c_TYPE: { alt41=15; } break; case INSTRUCTION_FORMAT22cs_FIELD: { alt41=16; } break; case INSTRUCTION_FORMAT22s_OR_ID: case INSTRUCTION_FORMAT22s: { alt41=17; } break; case INSTRUCTION_FORMAT22t: { alt41=18; } break; case INSTRUCTION_FORMAT22x: { alt41=19; } break; case INSTRUCTION_FORMAT23x: { alt41=20; } break; case INSTRUCTION_FORMAT30t: { alt41=21; } break; case INSTRUCTION_FORMAT31c: { alt41=22; } break; case INSTRUCTION_FORMAT31i_OR_ID: case INSTRUCTION_FORMAT31i: { alt41=23; } break; case INSTRUCTION_FORMAT31t: { alt41=24; } break; case INSTRUCTION_FORMAT32x: { alt41=25; } break; case INSTRUCTION_FORMAT35c_METHOD: { alt41=26; } break; case INSTRUCTION_FORMAT35c_TYPE: { alt41=27; } break; case INSTRUCTION_FORMAT35s_METHOD: { alt41=28; } break; case INSTRUCTION_FORMAT35ms_METHOD: { alt41=29; } break; case INSTRUCTION_FORMAT3rc_METHOD: { alt41=30; } break; case INSTRUCTION_FORMAT3rc_TYPE: { alt41=31; } break; case INSTRUCTION_FORMAT3rms_METHOD: { alt41=32; } break; case INSTRUCTION_FORMAT51l: { alt41=33; } break; case ARRAY_DATA_DIRECTIVE: { alt41=34; } break; case PACKED_SWITCH_DIRECTIVE: { alt41=35; } break; case SPARSE_SWITCH_DIRECTIVE: { alt41=36; } break; default: NoViableAltException nvae = new NoViableAltException("", 41, 0, input); throw nvae; } switch (alt41) { case 1 : // org/jf/smali/smaliParser.g:670:3: INSTRUCTION_FORMAT10t label_ref_or_offset { INSTRUCTION_FORMAT10t226=(Token)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_instruction2703); stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t226); pushFollow(FOLLOW_label_ref_or_offset_in_instruction2705); label_ref_or_offset227=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(label_ref_or_offset227.getTree()); retval.size = Format.Format10t.size; // AST REWRITE // elements: INSTRUCTION_FORMAT10t, label_ref_or_offset // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 671:3: -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref_or_offset ) { // org/jf/smali/smaliParser.g:671:6: ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref_or_offset ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10t, ((Token)retval.start), "I_STATEMENT_FORMAT10t"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10t.nextNode()); adaptor.addChild(root_1, stream_label_ref_or_offset.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 2 : // org/jf/smali/smaliParser.g:673:3: INSTRUCTION_FORMAT10x { INSTRUCTION_FORMAT10x228=(Token)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_instruction2728); stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x228); retval.size = Format.Format10x.size; // AST REWRITE // elements: INSTRUCTION_FORMAT10x // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 674:3: -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) { // org/jf/smali/smaliParser.g:674:6: ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10x, ((Token)retval.start), "I_STATEMENT_FORMAT10x"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10x.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 3 : // org/jf/smali/smaliParser.g:676:3: INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal { INSTRUCTION_FORMAT11n229=(Token)match(input,INSTRUCTION_FORMAT11n,FOLLOW_INSTRUCTION_FORMAT11n_in_instruction2749); stream_INSTRUCTION_FORMAT11n.add(INSTRUCTION_FORMAT11n229); REGISTER230=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction2751); stream_REGISTER.add(REGISTER230); COMMA231=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction2753); stream_COMMA.add(COMMA231); pushFollow(FOLLOW_integral_literal_in_instruction2755); integral_literal232=integral_literal(); state._fsp--; stream_integral_literal.add(integral_literal232.getTree()); retval.size = Format.Format11n.size; // AST REWRITE // elements: REGISTER, integral_literal, INSTRUCTION_FORMAT11n // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 677:3: -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) { // org/jf/smali/smaliParser.g:677:6: ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT11n, ((Token)retval.start), "I_STATEMENT_FORMAT11n"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11n.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_integral_literal.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 4 : // org/jf/smali/smaliParser.g:679:3: INSTRUCTION_FORMAT11x REGISTER { INSTRUCTION_FORMAT11x233=(Token)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_instruction2780); stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x233); REGISTER234=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction2782); stream_REGISTER.add(REGISTER234); retval.size = Format.Format11x.size; // AST REWRITE // elements: INSTRUCTION_FORMAT11x, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 680:3: -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) { // org/jf/smali/smaliParser.g:680:6: ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT11x, ((Token)retval.start), "I_STATEMENT_FORMAT11x"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11x.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 5 : // org/jf/smali/smaliParser.g:682:3: instruction_format12x REGISTER COMMA REGISTER { pushFollow(FOLLOW_instruction_format12x_in_instruction2805); instruction_format12x235=instruction_format12x(); state._fsp--; stream_instruction_format12x.add(instruction_format12x235.getTree()); REGISTER236=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction2807); stream_REGISTER.add(REGISTER236); COMMA237=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction2809); stream_COMMA.add(COMMA237); REGISTER238=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction2811); stream_REGISTER.add(REGISTER238); retval.size = Format.Format12x.size; // AST REWRITE // elements: REGISTER, instruction_format12x, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 683:3: -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) { // org/jf/smali/smaliParser.g:683:6: ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT12x, ((Token)retval.start), "I_STATEMENT_FORMAT12x"), root_1); adaptor.addChild(root_1, stream_instruction_format12x.nextTree()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } switch (alt41) { case 6 : // org/jf/smali/smaliParser.g:685:3: INSTRUCTION_FORMAT20t label_ref_or_offset { INSTRUCTION_FORMAT20t239=(Token)match(input,INSTRUCTION_FORMAT20t,FOLLOW_INSTRUCTION_FORMAT20t_in_instruction2836); stream_INSTRUCTION_FORMAT20t.add(INSTRUCTION_FORMAT20t239); pushFollow(FOLLOW_label_ref_or_offset_in_instruction2838); label_ref_or_offset240=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(label_ref_or_offset240.getTree()); retval.size = Format.Format20t.size; // AST REWRITE // elements: INSTRUCTION_FORMAT20t, label_ref_or_offset // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 686:3: -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref_or_offset ) { // org/jf/smali/smaliParser.g:686:6: ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref_or_offset ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT20t, ((Token)retval.start), "I_STATEMENT_FORMAT20t"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT20t.nextNode()); adaptor.addChild(root_1, stream_label_ref_or_offset.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 7 : // org/jf/smali/smaliParser.g:688:3: INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA fully_qualified_field { INSTRUCTION_FORMAT21c_FIELD241=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_instruction2861); stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD241); REGISTER242=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction2863); stream_REGISTER.add(REGISTER242); COMMA243=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction2865); stream_COMMA.add(COMMA243); pushFollow(FOLLOW_fully_qualified_field_in_instruction2867); fully_qualified_field244=fully_qualified_field(); state._fsp--; stream_fully_qualified_field.add(fully_qualified_field244.getTree()); retval.size = Format.Format21c.size; // AST REWRITE // elements: fully_qualified_field, INSTRUCTION_FORMAT21c_FIELD, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 689:3: -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER fully_qualified_field ) { // org/jf/smali/smaliParser.g:689:6: ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER fully_qualified_field ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_FIELD, ((Token)retval.start), "I_STATEMENT_FORMAT21c_FIELD"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_FIELD.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_fully_qualified_field.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 8 : // org/jf/smali/smaliParser.g:691:3: INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL { INSTRUCTION_FORMAT21c_STRING245=(Token)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_instruction2892); stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING245); REGISTER246=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction2894); stream_REGISTER.add(REGISTER246); COMMA247=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction2896); stream_COMMA.add(COMMA247); STRING_LITERAL248=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_instruction2898); stream_STRING_LITERAL.add(STRING_LITERAL248); retval.size = Format.Format21c.size; // AST REWRITE // elements: REGISTER, INSTRUCTION_FORMAT21c_STRING, STRING_LITERAL // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 692:3: -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) { // org/jf/smali/smaliParser.g:692:6: ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_STRING, ((Token)retval.start), "I_STATEMENT_FORMAT21c_STRING"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_STRING.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 9 : // org/jf/smali/smaliParser.g:694:3: INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA reference_type_descriptor { INSTRUCTION_FORMAT21c_TYPE249=(Token)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_instruction2923); stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE249); REGISTER250=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction2925); stream_REGISTER.add(REGISTER250); COMMA251=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction2927); stream_COMMA.add(COMMA251); pushFollow(FOLLOW_reference_type_descriptor_in_instruction2929); reference_type_descriptor252=reference_type_descriptor(); state._fsp--; stream_reference_type_descriptor.add(reference_type_descriptor252.getTree()); retval.size = Format.Format21c.size; // AST REWRITE // elements: INSTRUCTION_FORMAT21c_TYPE, reference_type_descriptor, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 695:3: -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER reference_type_descriptor ) { // org/jf/smali/smaliParser.g:695:6: ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER reference_type_descriptor ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_TYPE, ((Token)retval.start), "I_STATEMENT_FORMAT21c"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_TYPE.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } switch (alt41) { case 10 : // org/jf/smali/smaliParser.g:697:3: INSTRUCTION_FORMAT21h REGISTER COMMA integral_literal { INSTRUCTION_FORMAT21h253=(Token)match(input,INSTRUCTION_FORMAT21h,FOLLOW_INSTRUCTION_FORMAT21h_in_instruction2954); stream_INSTRUCTION_FORMAT21h.add(INSTRUCTION_FORMAT21h253); REGISTER254=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction2956); stream_REGISTER.add(REGISTER254); COMMA255=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction2958); stream_COMMA.add(COMMA255); pushFollow(FOLLOW_integral_literal_in_instruction2960); integral_literal256=integral_literal(); state._fsp--; stream_integral_literal.add(integral_literal256.getTree()); retval.size = Format.Format21h.size; // AST REWRITE // elements: REGISTER, INSTRUCTION_FORMAT21h, integral_literal // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 698:3: -> ^( I_STATEMENT_FORMAT21h[$start, \"I_STATEMENT_FORMAT21h\"] INSTRUCTION_FORMAT21h REGISTER integral_literal ) { // org/jf/smali/smaliParser.g:698:6: ^( I_STATEMENT_FORMAT21h[$start, \"I_STATEMENT_FORMAT21h\"] INSTRUCTION_FORMAT21h REGISTER integral_literal ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21h, ((Token)retval.start), "I_STATEMENT_FORMAT21h"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21h.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_integral_literal.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 11 : // org/jf/smali/smaliParser.g:700:3: INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal { INSTRUCTION_FORMAT21s257=(Token)match(input,INSTRUCTION_FORMAT21s,FOLLOW_INSTRUCTION_FORMAT21s_in_instruction2985); stream_INSTRUCTION_FORMAT21s.add(INSTRUCTION_FORMAT21s257); REGISTER258=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction2987); stream_REGISTER.add(REGISTER258); COMMA259=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction2989); stream_COMMA.add(COMMA259); pushFollow(FOLLOW_integral_literal_in_instruction2991); integral_literal260=integral_literal(); state._fsp--; stream_integral_literal.add(integral_literal260.getTree()); retval.size = Format.Format21s.size; // AST REWRITE // elements: integral_literal, REGISTER, INSTRUCTION_FORMAT21s // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 701:3: -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) { // org/jf/smali/smaliParser.g:701:6: ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21s, ((Token)retval.start), "I_STATEMENT_FORMAT21s"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21s.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_integral_literal.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 12 : // org/jf/smali/smaliParser.g:703:3: INSTRUCTION_FORMAT21t REGISTER COMMA ( label_ref_or_offset ) { INSTRUCTION_FORMAT21t261=(Token)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_instruction3016); stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t261); REGISTER262=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3018); stream_REGISTER.add(REGISTER262); COMMA263=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3020); stream_COMMA.add(COMMA263); // org/jf/smali/smaliParser.g:703:40: ( label_ref_or_offset ) // org/jf/smali/smaliParser.g:703:41: label_ref_or_offset { pushFollow(FOLLOW_label_ref_or_offset_in_instruction3023); label_ref_or_offset264=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(label_ref_or_offset264.getTree()); } retval.size = Format.Format21t.size; // AST REWRITE // elements: REGISTER, label_ref_or_offset, INSTRUCTION_FORMAT21t // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 704:3: -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref_or_offset ) { // org/jf/smali/smaliParser.g:704:6: ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref_or_offset ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21t, ((Token)retval.start), "I_STATEMENT_FORMAT21t"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21t.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_label_ref_or_offset.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 13 : // org/jf/smali/smaliParser.g:706:3: INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal { INSTRUCTION_FORMAT22b265=(Token)match(input,INSTRUCTION_FORMAT22b,FOLLOW_INSTRUCTION_FORMAT22b_in_instruction3049); stream_INSTRUCTION_FORMAT22b.add(INSTRUCTION_FORMAT22b265); REGISTER266=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3051); stream_REGISTER.add(REGISTER266); COMMA267=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3053); stream_COMMA.add(COMMA267); REGISTER268=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3055); stream_REGISTER.add(REGISTER268); COMMA269=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3057); stream_COMMA.add(COMMA269); pushFollow(FOLLOW_integral_literal_in_instruction3059); integral_literal270=integral_literal(); state._fsp--; stream_integral_literal.add(integral_literal270.getTree()); retval.size = Format.Format22b.size; // AST REWRITE // elements: REGISTER, integral_literal, REGISTER, INSTRUCTION_FORMAT22b // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 707:3: -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) { // org/jf/smali/smaliParser.g:707:6: ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22b, ((Token)retval.start), "I_STATEMENT_FORMAT22b"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22b.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_integral_literal.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 14 : // org/jf/smali/smaliParser.g:709:3: INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA fully_qualified_field { INSTRUCTION_FORMAT22c_FIELD271=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_instruction3086); stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD271); REGISTER272=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3088); stream_REGISTER.add(REGISTER272); COMMA273=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3090); stream_COMMA.add(COMMA273); REGISTER274=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3092); stream_REGISTER.add(REGISTER274); COMMA275=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3094); stream_COMMA.add(COMMA275); pushFollow(FOLLOW_fully_qualified_field_in_instruction3096); fully_qualified_field276=fully_qualified_field(); state._fsp--; stream_fully_qualified_field.add(fully_qualified_field276.getTree()); retval.size = Format.Format22c.size; // AST REWRITE // elements: REGISTER, fully_qualified_field, REGISTER, INSTRUCTION_FORMAT22c_FIELD // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 710:3: -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER fully_qualified_field ) { // org/jf/smali/smaliParser.g:710:6: ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER fully_qualified_field ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_FIELD, ((Token)retval.start), "I_STATEMENT_FORMAT22c_FIELD"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_FIELD.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_fully_qualified_field.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } switch (alt41) { case 15 : // org/jf/smali/smaliParser.g:712:3: INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor { INSTRUCTION_FORMAT22c_TYPE277=(Token)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_instruction3123); stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE277); REGISTER278=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3125); stream_REGISTER.add(REGISTER278); COMMA279=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3127); stream_COMMA.add(COMMA279); REGISTER280=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3129); stream_REGISTER.add(REGISTER280); COMMA281=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3131); stream_COMMA.add(COMMA281); pushFollow(FOLLOW_nonvoid_type_descriptor_in_instruction3133); nonvoid_type_descriptor282=nonvoid_type_descriptor(); state._fsp--; stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor282.getTree()); retval.size = Format.Format22c.size; // AST REWRITE // elements: INSTRUCTION_FORMAT22c_TYPE, REGISTER, nonvoid_type_descriptor, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 713:3: -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor ) { // org/jf/smali/smaliParser.g:713:6: ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_TYPE, ((Token)retval.start), "I_STATEMENT_FORMAT22c_TYPE"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_TYPE.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 16 : // org/jf/smali/smaliParser.g:715:3: INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET { root_0 = (CommonTree)adaptor.nil(); INSTRUCTION_FORMAT22cs_FIELD283=(Token)match(input,INSTRUCTION_FORMAT22cs_FIELD,FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_instruction3160); INSTRUCTION_FORMAT22cs_FIELD283_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT22cs_FIELD283); adaptor.addChild(root_0, INSTRUCTION_FORMAT22cs_FIELD283_tree); REGISTER284=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3162); REGISTER284_tree = (CommonTree)adaptor.create(REGISTER284); adaptor.addChild(root_0, REGISTER284_tree); COMMA285=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3164); COMMA285_tree = (CommonTree)adaptor.create(COMMA285); adaptor.addChild(root_0, COMMA285_tree); REGISTER286=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3166); REGISTER286_tree = (CommonTree)adaptor.create(REGISTER286); adaptor.addChild(root_0, REGISTER286_tree); COMMA287=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3168); COMMA287_tree = (CommonTree)adaptor.create(COMMA287); adaptor.addChild(root_0, COMMA287_tree); FIELD_OFFSET288=(Token)match(input,FIELD_OFFSET,FOLLOW_FIELD_OFFSET_in_instruction3170); FIELD_OFFSET288_tree = (CommonTree)adaptor.create(FIELD_OFFSET288); adaptor.addChild(root_0, FIELD_OFFSET288_tree); throwOdexedInstructionException(input, (INSTRUCTION_FORMAT22cs_FIELD283!=null?INSTRUCTION_FORMAT22cs_FIELD283.getText():null)); } break; case 17 : // org/jf/smali/smaliParser.g:720:3: instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal { pushFollow(FOLLOW_instruction_format22s_in_instruction3182); instruction_format22s289=instruction_format22s(); state._fsp--; stream_instruction_format22s.add(instruction_format22s289.getTree()); REGISTER290=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3184); stream_REGISTER.add(REGISTER290); COMMA291=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3186); stream_COMMA.add(COMMA291); REGISTER292=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3188); stream_REGISTER.add(REGISTER292); COMMA293=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3190); stream_COMMA.add(COMMA293); pushFollow(FOLLOW_integral_literal_in_instruction3192); integral_literal294=integral_literal(); state._fsp--; stream_integral_literal.add(integral_literal294.getTree()); retval.size = Format.Format22s.size; // AST REWRITE // elements: REGISTER, integral_literal, instruction_format22s, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 721:3: -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) { // org/jf/smali/smaliParser.g:721:6: ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22s, ((Token)retval.start), "I_STATEMENT_FORMAT22s"), root_1); adaptor.addChild(root_1, stream_instruction_format22s.nextTree()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_integral_literal.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 18 : // org/jf/smali/smaliParser.g:723:3: INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref_or_offset { INSTRUCTION_FORMAT22t295=(Token)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_instruction3219); stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t295); REGISTER296=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3221); stream_REGISTER.add(REGISTER296); COMMA297=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3223); stream_COMMA.add(COMMA297); REGISTER298=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3225); stream_REGISTER.add(REGISTER298); COMMA299=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3227); stream_COMMA.add(COMMA299); pushFollow(FOLLOW_label_ref_or_offset_in_instruction3229); label_ref_or_offset300=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(label_ref_or_offset300.getTree()); retval.size = Format.Format22t.size; // AST REWRITE // elements: label_ref_or_offset, REGISTER, INSTRUCTION_FORMAT22t, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 724:3: -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref_or_offset ) { // org/jf/smali/smaliParser.g:724:6: ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref_or_offset ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22t, ((Token)retval.start), "I_STATEMENT_FFORMAT22t"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22t.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_label_ref_or_offset.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 19 : // org/jf/smali/smaliParser.g:726:3: INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER { INSTRUCTION_FORMAT22x301=(Token)match(input,INSTRUCTION_FORMAT22x,FOLLOW_INSTRUCTION_FORMAT22x_in_instruction3256); stream_INSTRUCTION_FORMAT22x.add(INSTRUCTION_FORMAT22x301); REGISTER302=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3258); stream_REGISTER.add(REGISTER302); COMMA303=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3260); stream_COMMA.add(COMMA303); REGISTER304=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3262); stream_REGISTER.add(REGISTER304); retval.size = Format.Format22x.size; // AST REWRITE // elements: REGISTER, INSTRUCTION_FORMAT22x, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 727:3: -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) { // org/jf/smali/smaliParser.g:727:6: ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22x, ((Token)retval.start), "I_STATEMENT_FORMAT22x"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22x.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } switch (alt41) { case 20 : // org/jf/smali/smaliParser.g:729:3: INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER { INSTRUCTION_FORMAT23x305=(Token)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_instruction3287); stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x305); REGISTER306=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3289); stream_REGISTER.add(REGISTER306); COMMA307=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3291); stream_COMMA.add(COMMA307); REGISTER308=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3293); stream_REGISTER.add(REGISTER308); COMMA309=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3295); stream_COMMA.add(COMMA309); REGISTER310=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3297); stream_REGISTER.add(REGISTER310); retval.size = Format.Format23x.size; // AST REWRITE // elements: REGISTER, INSTRUCTION_FORMAT23x, REGISTER, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 730:3: -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) { // org/jf/smali/smaliParser.g:730:6: ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT23x, ((Token)retval.start), "I_STATEMENT_FORMAT23x"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT23x.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 21 : // org/jf/smali/smaliParser.g:732:3: INSTRUCTION_FORMAT30t label_ref_or_offset { INSTRUCTION_FORMAT30t311=(Token)match(input,INSTRUCTION_FORMAT30t,FOLLOW_INSTRUCTION_FORMAT30t_in_instruction3324); stream_INSTRUCTION_FORMAT30t.add(INSTRUCTION_FORMAT30t311); pushFollow(FOLLOW_label_ref_or_offset_in_instruction3326); label_ref_or_offset312=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(label_ref_or_offset312.getTree()); retval.size = Format.Format30t.size; // AST REWRITE // elements: label_ref_or_offset, INSTRUCTION_FORMAT30t // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 733:3: -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref_or_offset ) { // org/jf/smali/smaliParser.g:733:6: ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref_or_offset ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT30t, ((Token)retval.start), "I_STATEMENT_FORMAT30t"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT30t.nextNode()); adaptor.addChild(root_1, stream_label_ref_or_offset.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 22 : // org/jf/smali/smaliParser.g:735:3: INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL { INSTRUCTION_FORMAT31c313=(Token)match(input,INSTRUCTION_FORMAT31c,FOLLOW_INSTRUCTION_FORMAT31c_in_instruction3349); stream_INSTRUCTION_FORMAT31c.add(INSTRUCTION_FORMAT31c313); REGISTER314=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3351); stream_REGISTER.add(REGISTER314); COMMA315=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3353); stream_COMMA.add(COMMA315); STRING_LITERAL316=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_instruction3355); stream_STRING_LITERAL.add(STRING_LITERAL316); retval.size = Format.Format31c.size; // AST REWRITE // elements: STRING_LITERAL, REGISTER, INSTRUCTION_FORMAT31c // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 736:3: -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) { // org/jf/smali/smaliParser.g:736:5: ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31c, ((Token)retval.start), "I_STATEMENT_FORMAT31c"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31c.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 23 : // org/jf/smali/smaliParser.g:738:3: instruction_format31i REGISTER COMMA fixed_32bit_literal { pushFollow(FOLLOW_instruction_format31i_in_instruction3379); instruction_format31i317=instruction_format31i(); state._fsp--; stream_instruction_format31i.add(instruction_format31i317.getTree()); REGISTER318=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3381); stream_REGISTER.add(REGISTER318); COMMA319=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3383); stream_COMMA.add(COMMA319); pushFollow(FOLLOW_fixed_32bit_literal_in_instruction3385); fixed_32bit_literal320=fixed_32bit_literal(); state._fsp--; stream_fixed_32bit_literal.add(fixed_32bit_literal320.getTree()); retval.size = Format.Format31i.size; // AST REWRITE // elements: REGISTER, instruction_format31i, fixed_32bit_literal // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 739:3: -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) { // org/jf/smali/smaliParser.g:739:6: ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31i, ((Token)retval.start), "I_STATEMENT_FORMAT31i"), root_1); adaptor.addChild(root_1, stream_instruction_format31i.nextTree()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 24 : // org/jf/smali/smaliParser.g:741:3: INSTRUCTION_FORMAT31t REGISTER COMMA label_ref_or_offset { INSTRUCTION_FORMAT31t321=(Token)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_instruction3410); stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t321); REGISTER322=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3412); stream_REGISTER.add(REGISTER322); COMMA323=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3414); stream_COMMA.add(COMMA323); pushFollow(FOLLOW_label_ref_or_offset_in_instruction3416); label_ref_or_offset324=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(label_ref_or_offset324.getTree()); retval.size = Format.Format31t.size; if ((INSTRUCTION_FORMAT31t321!=null?INSTRUCTION_FORMAT31t321.getText():null).equals("packed-switch")) { CommonTree root = new CommonTree(new CommonToken(I_PACKED_SWITCH_DECLARATION, "I_PACKED_SWITCH_DECLARATION")); CommonTree address = new CommonTree(new CommonToken(I_ADDRESS, Integer.toString(((method_scope)method_stack.peek()).currentAddress))); root.addChild(address); root.addChild((label_ref_or_offset324!=null?((CommonTree)label_ref_or_offset324.tree):null).dupNode()); ((statements_and_directives_scope)statements_and_directives_stack.peek()).packedSwitchDeclarations.add(root); } else if ((INSTRUCTION_FORMAT31t321!=null?INSTRUCTION_FORMAT31t321.getText():null).equals("sparse-switch")) { CommonTree root = new CommonTree(new CommonToken(I_SPARSE_SWITCH_DECLARATION, "I_SPARSE_SWITCH_DECLARATION")); CommonTree address = new CommonTree(new CommonToken(I_ADDRESS, Integer.toString(((method_scope)method_stack.peek()).currentAddress))); root.addChild(address); root.addChild((label_ref_or_offset324!=null?((CommonTree)label_ref_or_offset324.tree):null).dupNode()); ((statements_and_directives_scope)statements_and_directives_stack.peek()).sparseSwitchDeclarations.add(root); } // AST REWRITE // elements: REGISTER, label_ref_or_offset, INSTRUCTION_FORMAT31t // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 757:3: -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref_or_offset ) { // org/jf/smali/smaliParser.g:757:6: ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref_or_offset ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31t, ((Token)retval.start), "I_STATEMENT_FORMAT31t"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31t.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_label_ref_or_offset.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } switch (alt41) { case 25 : // org/jf/smali/smaliParser.g:759:3: INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER { INSTRUCTION_FORMAT32x325=(Token)match(input,INSTRUCTION_FORMAT32x,FOLLOW_INSTRUCTION_FORMAT32x_in_instruction3445); stream_INSTRUCTION_FORMAT32x.add(INSTRUCTION_FORMAT32x325); REGISTER326=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3447); stream_REGISTER.add(REGISTER326); COMMA327=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3449); stream_COMMA.add(COMMA327); REGISTER328=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3451); stream_REGISTER.add(REGISTER328); retval.size = Format.Format32x.size; // AST REWRITE // elements: REGISTER, REGISTER, INSTRUCTION_FORMAT32x // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 760:3: -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) { // org/jf/smali/smaliParser.g:760:6: ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT32x, ((Token)retval.start), "I_STATEMENT_FORMAT32x"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT32x.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 26 : // org/jf/smali/smaliParser.g:762:3: INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA fully_qualified_method { INSTRUCTION_FORMAT35c_METHOD329=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_instruction3476); stream_INSTRUCTION_FORMAT35c_METHOD.add(INSTRUCTION_FORMAT35c_METHOD329); OPEN_BRACE330=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_instruction3478); stream_OPEN_BRACE.add(OPEN_BRACE330); pushFollow(FOLLOW_register_list_in_instruction3480); register_list331=register_list(); state._fsp--; stream_register_list.add(register_list331.getTree()); CLOSE_BRACE332=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_instruction3482); stream_CLOSE_BRACE.add(CLOSE_BRACE332); COMMA333=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3484); stream_COMMA.add(COMMA333); pushFollow(FOLLOW_fully_qualified_method_in_instruction3486); fully_qualified_method334=fully_qualified_method(); state._fsp--; stream_fully_qualified_method.add(fully_qualified_method334.getTree()); retval.size = Format.Format35c.size; // AST REWRITE // elements: fully_qualified_method, INSTRUCTION_FORMAT35c_METHOD, register_list // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 763:3: -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list fully_qualified_method ) { // org/jf/smali/smaliParser.g:763:6: ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list fully_qualified_method ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT35c_METHOD, ((Token)retval.start), "I_STATEMENT_FORMAT35c_METHOD"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_METHOD.nextNode()); adaptor.addChild(root_1, stream_register_list.nextTree()); adaptor.addChild(root_1, stream_fully_qualified_method.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 27 : // org/jf/smali/smaliParser.g:765:3: INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor { INSTRUCTION_FORMAT35c_TYPE335=(Token)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_instruction3511); stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE335); OPEN_BRACE336=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_instruction3513); stream_OPEN_BRACE.add(OPEN_BRACE336); pushFollow(FOLLOW_register_list_in_instruction3515); register_list337=register_list(); state._fsp--; stream_register_list.add(register_list337.getTree()); CLOSE_BRACE338=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_instruction3517); stream_CLOSE_BRACE.add(CLOSE_BRACE338); COMMA339=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3519); stream_COMMA.add(COMMA339); pushFollow(FOLLOW_nonvoid_type_descriptor_in_instruction3521); nonvoid_type_descriptor340=nonvoid_type_descriptor(); state._fsp--; stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor340.getTree()); retval.size = Format.Format35c.size; // AST REWRITE // elements: nonvoid_type_descriptor, INSTRUCTION_FORMAT35c_TYPE, register_list // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 766:3: -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) { // org/jf/smali/smaliParser.g:766:6: ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT35c_TYPE, ((Token)retval.start), "I_STATEMENT_FORMAT35c_TYPE"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_TYPE.nextNode()); adaptor.addChild(root_1, stream_register_list.nextTree()); adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 28 : // org/jf/smali/smaliParser.g:768:3: INSTRUCTION_FORMAT35s_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA fully_qualified_method { root_0 = (CommonTree)adaptor.nil(); INSTRUCTION_FORMAT35s_METHOD341=(Token)match(input,INSTRUCTION_FORMAT35s_METHOD,FOLLOW_INSTRUCTION_FORMAT35s_METHOD_in_instruction3546); INSTRUCTION_FORMAT35s_METHOD341_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35s_METHOD341); adaptor.addChild(root_0, INSTRUCTION_FORMAT35s_METHOD341_tree); OPEN_BRACE342=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_instruction3548); OPEN_BRACE342_tree = (CommonTree)adaptor.create(OPEN_BRACE342); adaptor.addChild(root_0, OPEN_BRACE342_tree); pushFollow(FOLLOW_register_list_in_instruction3550); register_list343=register_list(); state._fsp--; adaptor.addChild(root_0, register_list343.getTree()); CLOSE_BRACE344=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_instruction3552); CLOSE_BRACE344_tree = (CommonTree)adaptor.create(CLOSE_BRACE344); adaptor.addChild(root_0, CLOSE_BRACE344_tree); COMMA345=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3554); COMMA345_tree = (CommonTree)adaptor.create(COMMA345); adaptor.addChild(root_0, COMMA345_tree); pushFollow(FOLLOW_fully_qualified_method_in_instruction3556); fully_qualified_method346=fully_qualified_method(); state._fsp--; adaptor.addChild(root_0, fully_qualified_method346.getTree()); throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35s_METHOD341!=null?INSTRUCTION_FORMAT35s_METHOD341.getText():null)); } break; case 29 : // org/jf/smali/smaliParser.g:773:3: INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_OFFSET { root_0 = (CommonTree)adaptor.nil(); INSTRUCTION_FORMAT35ms_METHOD347=(Token)match(input,INSTRUCTION_FORMAT35ms_METHOD,FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_instruction3568); INSTRUCTION_FORMAT35ms_METHOD347_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35ms_METHOD347); adaptor.addChild(root_0, INSTRUCTION_FORMAT35ms_METHOD347_tree); OPEN_BRACE348=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_instruction3570); OPEN_BRACE348_tree = (CommonTree)adaptor.create(OPEN_BRACE348); adaptor.addChild(root_0, OPEN_BRACE348_tree); pushFollow(FOLLOW_register_list_in_instruction3572); register_list349=register_list(); state._fsp--; adaptor.addChild(root_0, register_list349.getTree()); CLOSE_BRACE350=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_instruction3574); CLOSE_BRACE350_tree = (CommonTree)adaptor.create(CLOSE_BRACE350); adaptor.addChild(root_0, CLOSE_BRACE350_tree); COMMA351=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3576); COMMA351_tree = (CommonTree)adaptor.create(COMMA351); adaptor.addChild(root_0, COMMA351_tree); VTABLE_OFFSET352=(Token)match(input,VTABLE_OFFSET,FOLLOW_VTABLE_OFFSET_in_instruction3578); VTABLE_OFFSET352_tree = (CommonTree)adaptor.create(VTABLE_OFFSET352); adaptor.addChild(root_0, VTABLE_OFFSET352_tree); throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35ms_METHOD347!=null?INSTRUCTION_FORMAT35ms_METHOD347.getText():null)); } break; } switch (alt41) { case 30 : // org/jf/smali/smaliParser.g:778:3: INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA fully_qualified_method { INSTRUCTION_FORMAT3rc_METHOD353=(Token)match(input,INSTRUCTION_FORMAT3rc_METHOD,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_instruction3590); stream_INSTRUCTION_FORMAT3rc_METHOD.add(INSTRUCTION_FORMAT3rc_METHOD353); OPEN_BRACE354=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_instruction3592); stream_OPEN_BRACE.add(OPEN_BRACE354); pushFollow(FOLLOW_register_range_in_instruction3594); register_range355=register_range(); state._fsp--; stream_register_range.add(register_range355.getTree()); CLOSE_BRACE356=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_instruction3596); stream_CLOSE_BRACE.add(CLOSE_BRACE356); COMMA357=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3598); stream_COMMA.add(COMMA357); pushFollow(FOLLOW_fully_qualified_method_in_instruction3600); fully_qualified_method358=fully_qualified_method(); state._fsp--; stream_fully_qualified_method.add(fully_qualified_method358.getTree()); retval.size = Format.Format3rc.size; // AST REWRITE // elements: fully_qualified_method, register_range, INSTRUCTION_FORMAT3rc_METHOD // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 779:3: -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range fully_qualified_method ) { // org/jf/smali/smaliParser.g:779:6: ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range fully_qualified_method ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT3rc_METHOD, ((Token)retval.start), "I_STATEMENT_FORMAT3rc_METHOD"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_METHOD.nextNode()); adaptor.addChild(root_1, stream_register_range.nextTree()); adaptor.addChild(root_1, stream_fully_qualified_method.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 31 : // org/jf/smali/smaliParser.g:781:3: INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor { INSTRUCTION_FORMAT3rc_TYPE359=(Token)match(input,INSTRUCTION_FORMAT3rc_TYPE,FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_instruction3625); stream_INSTRUCTION_FORMAT3rc_TYPE.add(INSTRUCTION_FORMAT3rc_TYPE359); OPEN_BRACE360=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_instruction3627); stream_OPEN_BRACE.add(OPEN_BRACE360); pushFollow(FOLLOW_register_range_in_instruction3629); register_range361=register_range(); state._fsp--; stream_register_range.add(register_range361.getTree()); CLOSE_BRACE362=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_instruction3631); stream_CLOSE_BRACE.add(CLOSE_BRACE362); COMMA363=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3633); stream_COMMA.add(COMMA363); pushFollow(FOLLOW_nonvoid_type_descriptor_in_instruction3635); nonvoid_type_descriptor364=nonvoid_type_descriptor(); state._fsp--; stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor364.getTree()); retval.size = Format.Format3rc.size; // AST REWRITE // elements: nonvoid_type_descriptor, INSTRUCTION_FORMAT3rc_TYPE, register_range // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 782:3: -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) { // org/jf/smali/smaliParser.g:782:6: ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT3rc_TYPE, ((Token)retval.start), "I_STATEMENT_FORMAT3rc_TYPE"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_TYPE.nextNode()); adaptor.addChild(root_1, stream_register_range.nextTree()); adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 32 : // org/jf/smali/smaliParser.g:784:3: INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_OFFSET { root_0 = (CommonTree)adaptor.nil(); INSTRUCTION_FORMAT3rms_METHOD365=(Token)match(input,INSTRUCTION_FORMAT3rms_METHOD,FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_instruction3660); INSTRUCTION_FORMAT3rms_METHOD365_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rms_METHOD365); adaptor.addChild(root_0, INSTRUCTION_FORMAT3rms_METHOD365_tree); OPEN_BRACE366=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_instruction3662); OPEN_BRACE366_tree = (CommonTree)adaptor.create(OPEN_BRACE366); adaptor.addChild(root_0, OPEN_BRACE366_tree); pushFollow(FOLLOW_register_range_in_instruction3664); register_range367=register_range(); state._fsp--; adaptor.addChild(root_0, register_range367.getTree()); CLOSE_BRACE368=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_instruction3666); CLOSE_BRACE368_tree = (CommonTree)adaptor.create(CLOSE_BRACE368); adaptor.addChild(root_0, CLOSE_BRACE368_tree); COMMA369=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3668); COMMA369_tree = (CommonTree)adaptor.create(COMMA369); adaptor.addChild(root_0, COMMA369_tree); VTABLE_OFFSET370=(Token)match(input,VTABLE_OFFSET,FOLLOW_VTABLE_OFFSET_in_instruction3670); VTABLE_OFFSET370_tree = (CommonTree)adaptor.create(VTABLE_OFFSET370); adaptor.addChild(root_0, VTABLE_OFFSET370_tree); throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rms_METHOD365!=null?INSTRUCTION_FORMAT3rms_METHOD365.getText():null)); } break; case 33 : // org/jf/smali/smaliParser.g:789:3: INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal { INSTRUCTION_FORMAT51l371=(Token)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_instruction3682); stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l371); REGISTER372=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_instruction3684); stream_REGISTER.add(REGISTER372); COMMA373=(Token)match(input,COMMA,FOLLOW_COMMA_in_instruction3686); stream_COMMA.add(COMMA373); pushFollow(FOLLOW_fixed_literal_in_instruction3688); fixed_literal374=fixed_literal(); state._fsp--; stream_fixed_literal.add(fixed_literal374.getTree()); retval.size = Format.Format51l.size; // AST REWRITE // elements: INSTRUCTION_FORMAT51l, fixed_literal, REGISTER // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 790:3: -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) { // org/jf/smali/smaliParser.g:790:6: ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT51l, ((Token)retval.start), "I_STATEMENT_FORMAT51l"), root_1); adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT51l.nextNode()); adaptor.addChild(root_1, stream_REGISTER.nextNode()); adaptor.addChild(root_1, stream_fixed_literal.nextTree()); adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } switch (alt41) { case 34 : // org/jf/smali/smaliParser.g:792:3: ARRAY_DATA_DIRECTIVE integral_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE { ARRAY_DATA_DIRECTIVE375=(Token)match(input,ARRAY_DATA_DIRECTIVE,FOLLOW_ARRAY_DATA_DIRECTIVE_in_instruction3712); stream_ARRAY_DATA_DIRECTIVE.add(ARRAY_DATA_DIRECTIVE375); if ((((method_scope)method_stack.peek()).currentAddress % 2) != 0) { needsNop = true; retval.size = 2; } else { retval.size = 0; } pushFollow(FOLLOW_integral_literal_in_instruction3721); integral_literal376=integral_literal(); state._fsp--; stream_integral_literal.add(integral_literal376.getTree()); // org/jf/smali/smaliParser.g:802:20: ( fixed_literal )* loop38: do { int alt38=2; switch ( input.LA(1) ) { case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case LONG_LITERAL: case SHORT_LITERAL: case BYTE_LITERAL: case FLOAT_LITERAL_OR_ID: case DOUBLE_LITERAL_OR_ID: case FLOAT_LITERAL: case DOUBLE_LITERAL: case BOOL_LITERAL: case CHAR_LITERAL: case INTEGER_LITERAL: { alt38=1; } break; } if (alt38 == 1) { // org/jf/smali/smaliParser.g:802:21: fixed_literal { pushFollow(FOLLOW_fixed_literal_in_instruction3724); fixed_literal377=fixed_literal(); state._fsp--; stream_fixed_literal.add(fixed_literal377.getTree()); retval.size+=(fixed_literal377!=null?fixed_literal377.size:0); } break; } else { break loop38;} } while (true); END_ARRAY_DATA_DIRECTIVE378=(Token)match(input,END_ARRAY_DATA_DIRECTIVE,FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_instruction3730); stream_END_ARRAY_DATA_DIRECTIVE.add(END_ARRAY_DATA_DIRECTIVE378); retval.size = ((retval.size + 1)/2)*2 + 8; // AST REWRITE // elements: fixed_literal, integral_literal, fixed_literal, integral_literal // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); root_0 = (CommonTree)adaptor.nil(); // 806:3: -> {needsNop}? ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE integral_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) if (needsNop) { // org/jf/smali/smaliParser.g:806:18: ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10x, ((Token)retval.start), "I_STATEMENT_FORMAT10x"), root_1); adaptor.addChild(root_1, (CommonTree)adaptor.create(INSTRUCTION_FORMAT10x, ((Token)retval.start), "nop")); adaptor.addChild(root_0, root_1); } // org/jf/smali/smaliParser.g:807:6: ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE integral_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_ARRAY_DATA, "I_STATEMENT_ARRAY_DATA"), root_1); // org/jf/smali/smaliParser.g:807:31: ^( I_ARRAY_ELEMENT_SIZE integral_literal ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENT_SIZE, "I_ARRAY_ELEMENT_SIZE"), root_2); adaptor.addChild(root_2, stream_integral_literal.nextTree()); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:807:72: ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENTS, "I_ARRAY_ELEMENTS"), root_2); // org/jf/smali/smaliParser.g:807:91: ( fixed_literal )* while ( stream_fixed_literal.hasNext() ) { adaptor.addChild(root_2, stream_fixed_literal.nextTree()); } stream_fixed_literal.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } else // 809:3: -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE integral_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) { // org/jf/smali/smaliParser.g:809:6: ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE integral_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_ARRAY_DATA, ((Token)retval.start), "I_STATEMENT_ARRAY_DATA"), root_1); // org/jf/smali/smaliParser.g:809:65: ^( I_ARRAY_ELEMENT_SIZE integral_literal ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENT_SIZE, "I_ARRAY_ELEMENT_SIZE"), root_2); adaptor.addChild(root_2, stream_integral_literal.nextTree()); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:810:5: ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENTS, "I_ARRAY_ELEMENTS"), root_2); // org/jf/smali/smaliParser.g:810:24: ( fixed_literal )* while ( stream_fixed_literal.hasNext() ) { adaptor.addChild(root_2, stream_fixed_literal.nextTree()); } stream_fixed_literal.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 35 : // org/jf/smali/smaliParser.g:812:3: PACKED_SWITCH_DIRECTIVE fixed_32bit_literal (switch_target+= label_ref_or_offset )* END_PACKED_SWITCH_DIRECTIVE { PACKED_SWITCH_DIRECTIVE379=(Token)match(input,PACKED_SWITCH_DIRECTIVE,FOLLOW_PACKED_SWITCH_DIRECTIVE_in_instruction3809); stream_PACKED_SWITCH_DIRECTIVE.add(PACKED_SWITCH_DIRECTIVE379); targetCount = 0; if ((((method_scope)method_stack.peek()).currentAddress % 2) != 0) { needsNop = true; retval.size = 2; } else { retval.size = 0; } pushFollow(FOLLOW_fixed_32bit_literal_in_instruction3818); fixed_32bit_literal380=fixed_32bit_literal(); state._fsp--; stream_fixed_32bit_literal.add(fixed_32bit_literal380.getTree()); // org/jf/smali/smaliParser.g:825:3: (switch_target+= label_ref_or_offset )* loop39: do { int alt39=2; switch ( input.LA(1) ) { case NEGATIVE_INTEGER_LITERAL: case OFFSET: case COLON: { alt39=1; } break; } if (alt39 == 1) { // org/jf/smali/smaliParser.g:825:4: switch_target+= label_ref_or_offset { pushFollow(FOLLOW_label_ref_or_offset_in_instruction3828); switch_target=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(switch_target.getTree()); if (list_switch_target==null) list_switch_target=new ArrayList<Object>(); list_switch_target.add(switch_target.getTree()); retval.size+=4; targetCount++; } break; } else { break loop39; } } while (true); END_PACKED_SWITCH_DIRECTIVE381=(Token)match(input,END_PACKED_SWITCH_DIRECTIVE,FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_instruction3837); stream_END_PACKED_SWITCH_DIRECTIVE.add(END_PACKED_SWITCH_DIRECTIVE381); retval.size = retval.size + 8; // AST REWRITE // elements: switch_target, fixed_32bit_literal, switch_target, fixed_32bit_literal // token labels: // rule labels: retval // token list labels: // rule list labels: switch_target // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_switch_target=new RewriteRuleSubtreeStream(adaptor,"token switch_target",list_switch_target); root_0 = (CommonTree)adaptor.nil(); // 830:3: -> {needsNop}? ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) ^( 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_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) ) if (needsNop) { // org/jf/smali/smaliParser.g:830:18: ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10x, ((Token)retval.start), "I_STATEMENT_FORMAT10x"), root_1); adaptor.addChild(root_1, (CommonTree)adaptor.create(INSTRUCTION_FORMAT10x, ((Token)retval.start), "nop")); adaptor.addChild(root_0, root_1); } // org/jf/smali/smaliParser.g:831:6: ^( 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_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_PACKED_SWITCH, ((Token)retval.start), "I_STATEMENT_PACKED_SWITCH"), root_1); // org/jf/smali/smaliParser.g:832:7: ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_START_KEY, ((Token)retval.start), "I_PACKED_SWITCH_START_KEY"), root_2); adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree()); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:833:7: ^( I_PACKED_SWITCH_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_TARGETS, ((Token)retval.start), "I_PACKED_SWITCH_TARGETS"), root_2); adaptor.addChild(root_2, (CommonTree)adaptor.create(I_PACKED_SWITCH_TARGET_COUNT, ((Token)retval.start), Integer.toString(targetCount))); // org/jf/smali/smaliParser.g:833:136: ( $switch_target)* while ( stream_switch_target.hasNext() ) { adaptor.addChild(root_2, stream_switch_target.nextTree()); } stream_switch_target.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } else // 836:3: -> ^( 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_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) ) { // org/jf/smali/smaliParser.g:836:6: ^( 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_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_PACKED_SWITCH, ((Token)retval.start), "I_STATEMENT_PACKED_SWITCH"), root_1); // org/jf/smali/smaliParser.g:837:5: ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_START_KEY, ((Token)retval.start), "I_PACKED_SWITCH_START_KEY"), root_2); adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree()); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:838:5: ^( I_PACKED_SWITCH_TARGETS[$start, \"I_PACKED_SWITCH_TARGETS\"] I_PACKED_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ( $switch_target)* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_TARGETS, ((Token)retval.start), "I_PACKED_SWITCH_TARGETS"), root_2); adaptor.addChild(root_2, (CommonTree)adaptor.create(I_PACKED_SWITCH_TARGET_COUNT, ((Token)retval.start), Integer.toString(targetCount))); // org/jf/smali/smaliParser.g:838:134: ( $switch_target)* while ( stream_switch_target.hasNext() ) { adaptor.addChild(root_2, stream_switch_target.nextTree()); } stream_switch_target.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; case 36 : // org/jf/smali/smaliParser.g:842:3: SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW switch_target+= label_ref_or_offset )* END_SPARSE_SWITCH_DIRECTIVE { SPARSE_SWITCH_DIRECTIVE382=(Token)match(input,SPARSE_SWITCH_DIRECTIVE,FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_instruction3954); stream_SPARSE_SWITCH_DIRECTIVE.add(SPARSE_SWITCH_DIRECTIVE382); targetCount = 0; if ((((method_scope)method_stack.peek()).currentAddress % 2) != 0) { needsNop = true; retval.size = 2; } else { retval.size = 0; } // org/jf/smali/smaliParser.g:853:3: ( fixed_32bit_literal ARROW switch_target+= label_ref_or_offset )* loop40: do { int alt40=2; switch ( input.LA(1) ) { case POSITIVE_INTEGER_LITERAL: case NEGATIVE_INTEGER_LITERAL: case LONG_LITERAL: case SHORT_LITERAL: case BYTE_LITERAL: case FLOAT_LITERAL_OR_ID: case FLOAT_LITERAL: case BOOL_LITERAL: case CHAR_LITERAL: case INTEGER_LITERAL: { alt40=1; } break; } if (alt40 == 1) { // org/jf/smali/smaliParser.g:853:4: fixed_32bit_literal ARROW switch_target+= label_ref_or_offset { pushFollow(FOLLOW_fixed_32bit_literal_in_instruction3964); fixed_32bit_literal383=fixed_32bit_literal(); state._fsp--; stream_fixed_32bit_literal.add(fixed_32bit_literal383.getTree()); ARROW384=(Token)match(input,ARROW,FOLLOW_ARROW_in_instruction3966); stream_ARROW.add(ARROW384); pushFollow(FOLLOW_label_ref_or_offset_in_instruction3972); switch_target=label_ref_or_offset(); state._fsp--; stream_label_ref_or_offset.add(switch_target.getTree()); if (list_switch_target==null) list_switch_target=new ArrayList<Object>(); list_switch_target.add(switch_target.getTree()); retval.size += 8; targetCount++; } break; } else { break loop40; } } while (true); END_SPARSE_SWITCH_DIRECTIVE385=(Token)match(input,END_SPARSE_SWITCH_DIRECTIVE,FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_instruction3981); stream_END_SPARSE_SWITCH_DIRECTIVE.add(END_SPARSE_SWITCH_DIRECTIVE385); retval.size = retval.size + 4; // AST REWRITE // elements: switch_target, fixed_32bit_literal, fixed_32bit_literal, switch_target // token labels: // rule labels: retval // token list labels: // rule list labels: switch_target // wildcard labels: retval.tree = root_0; new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null); RewriteRuleSubtreeStream stream_switch_target=new RewriteRuleSubtreeStream(adaptor,"token switch_target",list_switch_target); root_0 = (CommonTree)adaptor.nil(); // 858:3: -> {needsNop}? ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] I_SPARSE_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) ) if (needsNop) { // org/jf/smali/smaliParser.g:858:18: ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x[$start, \"nop\"] ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10x, ((Token)retval.start), "I_STATEMENT_FORMAT10x"), root_1); adaptor.addChild(root_1, (CommonTree)adaptor.create(INSTRUCTION_FORMAT10x, ((Token)retval.start), "nop")); adaptor.addChild(root_0, root_1); } // org/jf/smali/smaliParser.g:859:6: ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] I_SPARSE_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_SPARSE_SWITCH, ((Token)retval.start), "I_STATEMENT_SPARSE_SWITCH"), root_1); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_SPARSE_SWITCH_TARGET_COUNT, ((Token)retval.start), Integer.toString(targetCount))); // org/jf/smali/smaliParser.g:861:7: ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SPARSE_SWITCH_KEYS, ((Token)retval.start), "I_SPARSE_SWITCH_KEYS"), root_2); // org/jf/smali/smaliParser.g:861:62: ( fixed_32bit_literal )* while ( stream_fixed_32bit_literal.hasNext() ) { adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree()); } stream_fixed_32bit_literal.reset(); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:862:7: ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SPARSE_SWITCH_TARGETS, "I_SPARSE_SWITCH_TARGETS"), root_2); // org/jf/smali/smaliParser.g:862:33: ( $switch_target)* while ( stream_switch_target.hasNext() ) { adaptor.addChild(root_2, stream_switch_target.nextTree()); } stream_switch_target.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } else // 863:3: -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] I_SPARSE_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) ) { // org/jf/smali/smaliParser.g:863:6: ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] I_SPARSE_SWITCH_TARGET_COUNT[$start, Integer.toString(targetCount)] ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) ) { CommonTree root_1 = (CommonTree)adaptor.nil(); root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_SPARSE_SWITCH, ((Token)retval.start), "I_STATEMENT_SPARSE_SWITCH"), root_1); adaptor.addChild(root_1, (CommonTree)adaptor.create(I_SPARSE_SWITCH_TARGET_COUNT, ((Token)retval.start), Integer.toString(targetCount))); // org/jf/smali/smaliParser.g:865:5: ^( I_SPARSE_SWITCH_KEYS[$start, \"I_SPARSE_SWITCH_KEYS\"] ( fixed_32bit_literal )* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SPARSE_SWITCH_KEYS, ((Token)retval.start), "I_SPARSE_SWITCH_KEYS"), root_2); // org/jf/smali/smaliParser.g:865:60: ( fixed_32bit_literal )* while ( stream_fixed_32bit_literal.hasNext() ) { adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree()); } stream_fixed_32bit_literal.reset(); adaptor.addChild(root_1, root_2); } // org/jf/smali/smaliParser.g:866:5: ^( I_SPARSE_SWITCH_TARGETS ( $switch_target)* ) { CommonTree root_2 = (CommonTree)adaptor.nil(); root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SPARSE_SWITCH_TARGETS, "I_SPARSE_SWITCH_TARGETS"), root_2); // org/jf/smali/smaliParser.g:866:31: ( $switch_target)* while ( stream_switch_target.hasNext() ) { adaptor.addChild(root_2, stream_switch_target.nextTree()); } stream_switch_target.reset(); adaptor.addChild(root_1, root_2); } adaptor.addChild(root_0, root_1); } } retval.tree = root_0; } break; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } catch (RecognitionException re) { reportError(re); recover(input,re); retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { } return retval; } // $ANTLR end "instruction" // Delegated rules protected DFA4 dfa4 = new DFA4(this); protected DFA23 dfa23 = new DFA23(this); protected DFA31 dfa31 = new DFA31(this); static final String DFA4_eotS = "\13\uffff"; static final String DFA4_eofS = "\1\1\12\uffff"; static final String DFA4_minS = "\1\4\10\uffff\1\0\1\uffff"; static final String DFA4_maxS = "\1\17\10\uffff\1\0\1\uffff"; static final String DFA4_acceptS = "\1\uffff\1\2\10\uffff\1\1"; static final String DFA4_specialS = "\11\uffff\1\0\1\uffff}>"; static final String[] DFA4_transitionS = { "\6\1\2\uffff\1\11\2\uffff\1\1", "", "", "", "", "", "", "", "", "\1\uffff", "" }; static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS); static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS); static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS); static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS); static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS); static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS); static final short[][] DFA4_transition; static { int numStates = DFA4_transitionS.length; DFA4_transition = new short[numStates][]; for (int i=0; i<numStates; i++) { DFA4_transition[i] = DFA.unpackEncodedString(DFA4_transitionS[i]); } } class DFA4 extends DFA { public DFA4(BaseRecognizer recognizer) { this.recognizer = recognizer; this.decisionNumber = 4; this.eot = DFA4_eot; this.eof = DFA4_eof; this.min = DFA4_min; this.max = DFA4_max; this.accept = DFA4_accept; this.special = DFA4_special; this.transition = DFA4_transition; } public String getDescription() { return "()* loopback of 356:5: ({...}? annotation )*"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { TokenStream input = (TokenStream)_input; int _s = s; switch ( s ) { case 0 : input.LA(1); int index4_9 = input.index(); input.rewind(); s = -1; if ( ((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {s = 10;} else if ( (true) ) {s = 1;} input.seek(index4_9); if ( s>=0 ) return s; break; } NoViableAltException nvae = new NoViableAltException(getDescription(), 4, _s, input); error(nvae); throw nvae; } } static final String DFA23_eotS = "\45\uffff"; static final String DFA23_eofS = "\45\uffff"; static final String DFA23_minS = "\1\54\42\166\2\uffff"; static final String DFA23_maxS = "\1\162\42\172\2\uffff"; static final String DFA23_acceptS = "\43\uffff\1\2\1\1"; static final String DFA23_specialS = "\45\uffff}>"; static final String[] DFA23_transitionS = { "\1\3\1\4\3\uffff\1\5\1\6\2\uffff\1\7\1\10\4\uffff\1\11\1\15"+ "\1\2\4\uffff\1\16\1\17\1\uffff\1\20\1\21\2\uffff\1\22\1\23\1"+ "\24\2\uffff\1\25\1\uffff\1\26\1\27\1\30\1\31\1\uffff\1\32\1"+ "\uffff\1\33\2\uffff\1\34\1\uffff\1\35\1\uffff\1\36\1\37\1\40"+ "\1\41\3\uffff\1\42\5\uffff\1\13\1\14\2\uffff\1\12\1\uffff\1"+ "\1\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "\1\44\3\uffff\1\43", "", "" }; static final short[] DFA23_eot = DFA.unpackEncodedString(DFA23_eotS); static final short[] DFA23_eof = DFA.unpackEncodedString(DFA23_eofS); static final char[] DFA23_min = DFA.unpackEncodedStringToUnsignedChars(DFA23_minS); static final char[] DFA23_max = DFA.unpackEncodedStringToUnsignedChars(DFA23_maxS); static final short[] DFA23_accept = DFA.unpackEncodedString(DFA23_acceptS); static final short[] DFA23_special = DFA.unpackEncodedString(DFA23_specialS); static final short[][] DFA23_transition; static { int numStates = DFA23_transitionS.length; DFA23_transition = new short[numStates][]; for (int i=0; i<numStates; i++) { DFA23_transition[i] = DFA.unpackEncodedString(DFA23_transitionS[i]); } } class DFA23 extends DFA { public DFA23(BaseRecognizer recognizer) { this.recognizer = recognizer; this.decisionNumber = 23; this.eot = DFA23_eot; this.eof = DFA23_eof; this.min = DFA23_min; this.max = DFA23_max; this.accept = DFA23_accept; this.special = DFA23_special; this.transition = DFA23_transition; } public String getDescription() { return "562:4: ( simple_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD reference_type_descriptor simple_name nonvoid_type_descriptor ) | method_name method_prototype -> ^( I_ENCODED_METHOD reference_type_descriptor method_name method_prototype ) )"; } } static final String DFA31_eotS = "\71\uffff"; static final String DFA31_eofS = "\71\uffff"; static final String DFA31_minS = "\1\7\66\uffff\1\0\1\uffff"; static final String DFA31_maxS = "\1\166\66\uffff\1\0\1\uffff"; static final String DFA31_acceptS = "\1\uffff\1\2\66\uffff\1\1"; static final String DFA31_specialS = "\67\uffff\1\0\1\uffff}>"; static final String[] DFA31_transitionS = { "\1\1\4\uffff\1\67\3\uffff\4\1\1\uffff\1\1\1\uffff\1\1\1\uffff"+ "\12\1\37\uffff\44\1\20\uffff\1\1", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "\1\uffff", "" }; static final short[] DFA31_eot = DFA.unpackEncodedString(DFA31_eotS); static final short[] DFA31_eof = DFA.unpackEncodedString(DFA31_eofS); static final char[] DFA31_min = DFA.unpackEncodedStringToUnsignedChars(DFA31_minS); static final char[] DFA31_max = DFA.unpackEncodedStringToUnsignedChars(DFA31_maxS); static final short[] DFA31_accept = DFA.unpackEncodedString(DFA31_acceptS); static final short[] DFA31_special = DFA.unpackEncodedString(DFA31_specialS); static final short[][] DFA31_transition; static { int numStates = DFA31_transitionS.length; DFA31_transition = new short[numStates][]; for (int i=0; i<numStates; i++) { DFA31_transition[i] = DFA.unpackEncodedString(DFA31_transitionS[i]); } } class DFA31 extends DFA { public DFA31(BaseRecognizer recognizer) { this.recognizer = recognizer; this.decisionNumber = 31; this.eot = DFA31_eot; this.eof = DFA31_eof; this.min = DFA31_min; this.max = DFA31_max; this.accept = DFA31_accept; this.special = DFA31_special; this.transition = DFA31_transition; } public String getDescription() { return "()* loopback of 609:3: ({...}? annotation )*"; } public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { TokenStream input = (TokenStream)_input; int _s = s; switch ( s ) { case 0 : input.LA(1); int index31_55 = input.index(); input.rewind(); s = -1; if ( ((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {s = 56;} else if ( (true) ) {s = 1;} input.seek(index31_55); if ( s>=0 ) return s; break; } NoViableAltException nvae = new NoViableAltException(getDescription(), 31, _s, input); error(nvae); throw nvae; } } public static final BitSet FOLLOW_class_spec_in_smali_file436 = new BitSet(new long[]{0x00000000000091F0L}); public static final BitSet FOLLOW_super_spec_in_smali_file446 = new BitSet(new long[]{0x00000000000091F0L}); public static final BitSet FOLLOW_implements_spec_in_smali_file453 = new BitSet(new long[]{0x00000000000091F0L}); public static final BitSet FOLLOW_source_spec_in_smali_file461 = new BitSet(new long[]{0x00000000000091F0L}); public static final BitSet FOLLOW_method_in_smali_file468 = new BitSet(new long[]{0x00000000000091F0L}); public static final BitSet FOLLOW_field_in_smali_file473 = new BitSet(new long[]{0x00000000000091F0L}); public static final BitSet FOLLOW_annotation_in_smali_file478 = new BitSet(new long[]{0x00000000000091F0L}); public static final BitSet FOLLOW_EOF_in_smali_file487 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CLASS_DIRECTIVE_in_class_spec551 = new BitSet(new long[]{0x2000000000000000L,0x0000200000000000L}); public static final BitSet FOLLOW_access_list_in_class_spec553 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L}); public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_class_spec555 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SUPER_DIRECTIVE_in_super_spec572 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L}); public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_super_spec574 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec592 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L}); public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_implements_spec594 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_spec612 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_STRING_LITERAL_in_source_spec614 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ACCESS_SPEC_in_access_list632 = new BitSet(new long[]{0x2000000000000002L}); public static final BitSet FOLLOW_FIELD_DIRECTIVE_in_field661 = new BitSet(new long[]{0x3866300000000000L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_access_list_in_field663 = new BitSet(new long[]{0x3866300000000000L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_simple_name_in_field665 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L}); public static final BitSet FOLLOW_COLON_in_field667 = new BitSet(new long[]{0x0000000000000000L,0x0000680000000000L}); public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field669 = new BitSet(new long[]{0x00000000000093F2L,0x0020000000000000L}); public static final BitSet FOLLOW_EQUAL_in_field672 = new BitSet(new long[]{0x057FF00000004400L,0x0100780000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_literal_in_field674 = new BitSet(new long[]{0x00000000000093F2L}); public static final BitSet FOLLOW_annotation_in_field685 = new BitSet(new long[]{0x00000000000093F2L}); public static final BitSet FOLLOW_END_FIELD_DIRECTIVE_in_field696 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_METHOD_DIRECTIVE_in_method799 = new BitSet(new long[]{0x3866300000000000L,0x00069823D4AF4E6CL}); public static final BitSet FOLLOW_access_list_in_method801 = new BitSet(new long[]{0x3866300000000000L,0x00069823D4AF4E6CL}); public static final BitSet FOLLOW_method_name_in_method803 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L}); public static final BitSet FOLLOW_method_prototype_in_method805 = new BitSet(new long[]{0x00000007DEAF91F0L,0x0040003FFFFFFFFCL}); public static final BitSet FOLLOW_statements_and_directives_in_method807 = new BitSet(new long[]{0x0000000000010000L}); public static final BitSet FOLLOW_END_METHOD_DIRECTIVE_in_method811 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_instruction_in_statements_and_directives849 = new BitSet(new long[]{0x00000007DEAE91F2L,0x0040003FFFFFFFFCL}); public static final BitSet FOLLOW_registers_directive_in_statements_and_directives857 = new BitSet(new long[]{0x00000007DEAE91F2L,0x0040003FFFFFFFFCL}); public static final BitSet FOLLOW_label_in_statements_and_directives863 = new BitSet(new long[]{0x00000007DEAE91F2L,0x0040003FFFFFFFFCL}); public static final BitSet FOLLOW_catch_directive_in_statements_and_directives869 = new BitSet(new long[]{0x00000007DEAE91F2L,0x0040003FFFFFFFFCL}); public static final BitSet FOLLOW_catchall_directive_in_statements_and_directives875 = new BitSet(new long[]{0x00000007DEAE91F2L,0x0040003FFFFFFFFCL}); public static final BitSet FOLLOW_parameter_directive_in_statements_and_directives881 = new BitSet(new long[]{0x00000007DEAE91F2L,0x0040003FFFFFFFFCL}); public static final BitSet FOLLOW_ordered_debug_directive_in_statements_and_directives887 = new BitSet(new long[]{0x00000007DEAE91F2L,0x0040003FFFFFFFFCL}); public static final BitSet FOLLOW_annotation_in_statements_and_directives893 = new BitSet(new long[]{0x00000007DEAE91F2L,0x0040003FFFFFFFFCL}); public static final BitSet FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive992 = new BitSet(new long[]{0x0401F00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_integral_literal_in_registers_directive996 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1014 = new BitSet(new long[]{0x0401F00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_integral_literal_in_registers_directive1018 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SIMPLE_NAME_in_simple_name1047 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ACCESS_SPEC_in_simple_name1052 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1062 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1072 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1082 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1092 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BOOL_LITERAL_in_simple_name1102 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_NULL_LITERAL_in_simple_name1112 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_REGISTER_in_simple_name1122 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_PARAM_LIST_OR_ID_in_simple_name1132 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_simple_name1142 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_VOID_TYPE_in_simple_name1152 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_simple_name1162 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name1172 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name1182 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name1192 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name1202 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name1212 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name1222 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name1232 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name1242 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name1252 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name1262 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name1272 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name1282 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name1292 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name1302 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name1312 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name1322 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name1332 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name1342 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT35s_METHOD_in_simple_name1352 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name1362 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name1372 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_simple_name_in_method_name1386 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_METHOD_NAME_in_method_name1391 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_OPEN_PAREN_in_method_prototype1405 = new BitSet(new long[]{0x0000000000000000L,0x0801E80000000000L}); public static final BitSet FOLLOW_param_list_in_method_prototype1407 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L}); public static final BitSet FOLLOW_CLOSE_PAREN_in_method_prototype1409 = new BitSet(new long[]{0x0000000000000000L,0x0000780000000000L}); public static final BitSet FOLLOW_type_descriptor_in_method_prototype1411 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_PARAM_LIST_in_param_list1438 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_PARAM_LIST_OR_ID_in_param_list1447 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_nonvoid_type_descriptor_in_param_list1456 = new BitSet(new long[]{0x0000000000000002L,0x0000680000000000L}); public static final BitSet FOLLOW_set_in_type_descriptor0 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_set_in_nonvoid_type_descriptor0 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_set_in_reference_type_descriptor0 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal1523 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal1533 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INTEGER_LITERAL_in_integer_literal1543 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal1552 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_FLOAT_LITERAL_in_float_literal1562 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal1571 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_DOUBLE_LITERAL_in_double_literal1581 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LONG_LITERAL_in_literal1590 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_integer_literal_in_literal1595 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SHORT_LITERAL_in_literal1600 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BYTE_LITERAL_in_literal1605 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_float_literal_in_literal1610 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_double_literal_in_literal1615 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CHAR_LITERAL_in_literal1620 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_STRING_LITERAL_in_literal1625 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BOOL_LITERAL_in_literal1630 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_NULL_LITERAL_in_literal1635 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_array_literal_in_literal1640 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_subannotation_in_literal1645 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_type_field_method_literal_in_literal1650 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_enum_literal_in_literal1655 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LONG_LITERAL_in_integral_literal1664 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_integer_literal_in_integral_literal1669 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SHORT_LITERAL_in_integral_literal1674 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CHAR_LITERAL_in_integral_literal1679 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BYTE_LITERAL_in_integral_literal1684 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_32bit_literal1693 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_integer_literal_in_fixed_32bit_literal1698 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal1703 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal1708 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_float_literal_in_fixed_32bit_literal1713 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal1718 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal1723 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_integer_literal_in_fixed_literal1735 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_literal1742 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_literal1749 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_literal1756 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_float_literal_in_fixed_literal1763 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_double_literal_in_fixed_literal1770 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_literal1777 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_literal1784 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_OPEN_BRACE_in_array_literal1795 = new BitSet(new long[]{0x057FF00000004400L,0x0300780000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_literal_in_array_literal1798 = new BitSet(new long[]{0x0000000000000000L,0x0280000000000000L}); public static final BitSet FOLLOW_COMMA_in_array_literal1801 = new BitSet(new long[]{0x057FF00000004400L,0x0100780000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_literal_in_array_literal1803 = new BitSet(new long[]{0x0000000000000000L,0x0280000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_array_literal1811 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_simple_name_in_annotation_element1832 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L}); public static final BitSet FOLLOW_EQUAL_in_annotation_element1834 = new BitSet(new long[]{0x057FF00000004400L,0x0100780000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_literal_in_annotation_element1836 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ANNOTATION_DIRECTIVE_in_annotation1858 = new BitSet(new long[]{0x1000000000000000L}); public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_annotation1860 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L}); public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_annotation1862 = new BitSet(new long[]{0x3866300000002000L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_annotation_element_in_annotation1866 = new BitSet(new long[]{0x3866300000002000L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation1869 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation1899 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L}); public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_subannotation1901 = new BitSet(new long[]{0x3866300000000800L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_annotation_element_in_subannotation1903 = new BitSet(new long[]{0x3866300000000800L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation1906 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ENUM_DIRECTIVE_in_enum_literal1929 = new BitSet(new long[]{0x0000000000000000L,0x0000600000000000L}); public static final BitSet FOLLOW_reference_type_descriptor_in_enum_literal1931 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L}); public static final BitSet FOLLOW_ARROW_in_enum_literal1933 = new BitSet(new long[]{0x3866300000000000L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_simple_name_in_enum_literal1935 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L}); public static final BitSet FOLLOW_COLON_in_enum_literal1937 = new BitSet(new long[]{0x0000000000000000L,0x0000600000000000L}); public static final BitSet FOLLOW_reference_type_descriptor_in_enum_literal1939 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_reference_type_descriptor_in_type_field_method_literal1961 = new BitSet(new long[]{0x0000000000000002L,0x0010000000000000L}); public static final BitSet FOLLOW_ARROW_in_type_field_method_literal1967 = new BitSet(new long[]{0x3866300000000000L,0x00069823D4AF4E6CL}); public static final BitSet FOLLOW_simple_name_in_type_field_method_literal1975 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L}); public static final BitSet FOLLOW_COLON_in_type_field_method_literal1977 = new BitSet(new long[]{0x0000000000000000L,0x0000680000000000L}); public static final BitSet FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal1979 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_method_name_in_type_field_method_literal1998 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L}); public static final BitSet FOLLOW_method_prototype_in_type_field_method_literal2000 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal2034 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_VOID_TYPE_in_type_field_method_literal2039 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_reference_type_descriptor_in_fully_qualified_method2048 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L}); public static final BitSet FOLLOW_ARROW_in_fully_qualified_method2050 = new BitSet(new long[]{0x3866300000000000L,0x00069823D4AF4E6CL}); public static final BitSet FOLLOW_method_name_in_fully_qualified_method2052 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L}); public static final BitSet FOLLOW_method_prototype_in_fully_qualified_method2054 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_reference_type_descriptor_in_fully_qualified_field2072 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L}); public static final BitSet FOLLOW_ARROW_in_fully_qualified_field2074 = new BitSet(new long[]{0x3866300000000000L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_simple_name_in_fully_qualified_field2076 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L}); public static final BitSet FOLLOW_COLON_in_fully_qualified_field2078 = new BitSet(new long[]{0x0000000000000000L,0x0000680000000000L}); public static final BitSet FOLLOW_nonvoid_type_descriptor_in_fully_qualified_field2080 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_COLON_in_label2098 = new BitSet(new long[]{0x3866300000000000L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_simple_name_in_label2100 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_COLON_in_label_ref_or_offset2121 = new BitSet(new long[]{0x3866300000000000L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_simple_name_in_label_ref_or_offset2123 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_OFFSET_in_label_ref_or_offset2132 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_label_ref_or_offset2137 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_REGISTER_in_register_list2151 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_register_list2154 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_register_list2156 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L}); public static final BitSet FOLLOW_REGISTER_in_register_range2186 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L}); public static final BitSet FOLLOW_DOTDOT_in_register_range2189 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_register_range2191 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CATCH_DIRECTIVE_in_catch_directive2214 = new BitSet(new long[]{0x0000000000000000L,0x0000680000000000L}); public static final BitSet FOLLOW_nonvoid_type_descriptor_in_catch_directive2216 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); public static final BitSet FOLLOW_OPEN_BRACE_in_catch_directive2218 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_catch_directive2222 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L}); public static final BitSet FOLLOW_DOTDOT_in_catch_directive2224 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_catch_directive2228 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_catch_directive2230 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_catch_directive2234 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive2266 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); public static final BitSet FOLLOW_OPEN_BRACE_in_catchall_directive2268 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_catchall_directive2272 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L}); public static final BitSet FOLLOW_DOTDOT_in_catchall_directive2274 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_catchall_directive2278 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_catchall_directive2280 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_catchall_directive2284 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive2322 = new BitSet(new long[]{0x01000000200091F2L}); public static final BitSet FOLLOW_STRING_LITERAL_in_parameter_directive2326 = new BitSet(new long[]{0x00000000200091F2L}); public static final BitSet FOLLOW_annotation_in_parameter_directive2334 = new BitSet(new long[]{0x00000000200091F2L}); public static final BitSet FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive2345 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_line_directive_in_ordered_debug_directive2403 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_local_directive_in_ordered_debug_directive2408 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_end_local_directive_in_ordered_debug_directive2413 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_restart_local_directive_in_ordered_debug_directive2418 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_prologue_directive_in_ordered_debug_directive2423 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_epilogue_directive_in_ordered_debug_directive2428 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_source_directive_in_ordered_debug_directive2433 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LINE_DIRECTIVE_in_line_directive2442 = new BitSet(new long[]{0x0401F00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_integral_literal_in_line_directive2444 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_LOCAL_DIRECTIVE_in_local_directive2466 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_local_directive2468 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_local_directive2470 = new BitSet(new long[]{0x3866300000000000L,0x00029823D4AF4E6CL}); public static final BitSet FOLLOW_simple_name_in_local_directive2472 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L}); public static final BitSet FOLLOW_COLON_in_local_directive2474 = new BitSet(new long[]{0x0000000000000000L,0x0000680000000000L}); public static final BitSet FOLLOW_nonvoid_type_descriptor_in_local_directive2476 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_local_directive2479 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_STRING_LITERAL_in_local_directive2481 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive2513 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_end_local_directive2515 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive2538 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_restart_local_directive2540 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive2563 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive2584 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_directive2605 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_STRING_LITERAL_in_source_directive2607 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x2630 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x2635 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s2649 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s2654 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i2668 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i2673 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_instruction2703 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_instruction2705 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_instruction2728 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT11n_in_instruction2749 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction2751 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction2753 = new BitSet(new long[]{0x0401F00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_integral_literal_in_instruction2755 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_instruction2780 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction2782 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_instruction_format12x_in_instruction2805 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction2807 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction2809 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction2811 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT20t_in_instruction2836 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_instruction2838 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_instruction2861 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction2863 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction2865 = new BitSet(new long[]{0x0000000000000000L,0x0000600000000000L}); public static final BitSet FOLLOW_fully_qualified_field_in_instruction2867 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_instruction2892 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction2894 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction2896 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_STRING_LITERAL_in_instruction2898 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_instruction2923 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction2925 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction2927 = new BitSet(new long[]{0x0000000000000000L,0x0000600000000000L}); public static final BitSet FOLLOW_reference_type_descriptor_in_instruction2929 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21h_in_instruction2954 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction2956 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction2958 = new BitSet(new long[]{0x0401F00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_integral_literal_in_instruction2960 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21s_in_instruction2985 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction2987 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction2989 = new BitSet(new long[]{0x0401F00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_integral_literal_in_instruction2991 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_instruction3016 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3018 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3020 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_instruction3023 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22b_in_instruction3049 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3051 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3053 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3055 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3057 = new BitSet(new long[]{0x0401F00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_integral_literal_in_instruction3059 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_instruction3086 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3088 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3090 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3092 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3094 = new BitSet(new long[]{0x0000000000000000L,0x0000600000000000L}); public static final BitSet FOLLOW_fully_qualified_field_in_instruction3096 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_instruction3123 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3125 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3127 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3129 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3131 = new BitSet(new long[]{0x0000000000000000L,0x0000680000000000L}); public static final BitSet FOLLOW_nonvoid_type_descriptor_in_instruction3133 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_instruction3160 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3162 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3164 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3166 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3168 = new BitSet(new long[]{0x8000000000000000L}); public static final BitSet FOLLOW_FIELD_OFFSET_in_instruction3170 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_instruction_format22s_in_instruction3182 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3184 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3186 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3188 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3190 = new BitSet(new long[]{0x0401F00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_integral_literal_in_instruction3192 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_instruction3219 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3221 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3223 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3225 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3227 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_instruction3229 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT22x_in_instruction3256 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3258 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3260 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3262 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_instruction3287 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3289 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3291 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3293 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3295 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3297 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT30t_in_instruction3324 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_instruction3326 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT31c_in_instruction3349 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3351 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3353 = new BitSet(new long[]{0x0100000000000000L}); public static final BitSet FOLLOW_STRING_LITERAL_in_instruction3355 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_instruction_format31i_in_instruction3379 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3381 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3383 = new BitSet(new long[]{0x042BF00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_fixed_32bit_literal_in_instruction3385 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_instruction3410 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3412 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3414 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_instruction3416 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT32x_in_instruction3445 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3447 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3449 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3451 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_instruction3476 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); public static final BitSet FOLLOW_OPEN_BRACE_in_instruction3478 = new BitSet(new long[]{0x0800000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_register_list_in_instruction3480 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_instruction3482 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3484 = new BitSet(new long[]{0x0000000000000000L,0x0000600000000000L}); public static final BitSet FOLLOW_fully_qualified_method_in_instruction3486 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_instruction3511 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); public static final BitSet FOLLOW_OPEN_BRACE_in_instruction3513 = new BitSet(new long[]{0x0800000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_register_list_in_instruction3515 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_instruction3517 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3519 = new BitSet(new long[]{0x0000000000000000L,0x0000680000000000L}); public static final BitSet FOLLOW_nonvoid_type_descriptor_in_instruction3521 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT35s_METHOD_in_instruction3546 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); public static final BitSet FOLLOW_OPEN_BRACE_in_instruction3548 = new BitSet(new long[]{0x0800000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_register_list_in_instruction3550 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_instruction3552 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3554 = new BitSet(new long[]{0x0000000000000000L,0x0000600000000000L}); public static final BitSet FOLLOW_fully_qualified_method_in_instruction3556 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_instruction3568 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); public static final BitSet FOLLOW_OPEN_BRACE_in_instruction3570 = new BitSet(new long[]{0x0800000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_register_list_in_instruction3572 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_instruction3574 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3576 = new BitSet(new long[]{0x4000000000000000L}); public static final BitSet FOLLOW_VTABLE_OFFSET_in_instruction3578 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_instruction3590 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); public static final BitSet FOLLOW_OPEN_BRACE_in_instruction3592 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_register_range_in_instruction3594 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_instruction3596 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3598 = new BitSet(new long[]{0x0000000000000000L,0x0000600000000000L}); public static final BitSet FOLLOW_fully_qualified_method_in_instruction3600 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_instruction3625 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); public static final BitSet FOLLOW_OPEN_BRACE_in_instruction3627 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_register_range_in_instruction3629 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_instruction3631 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3633 = new BitSet(new long[]{0x0000000000000000L,0x0000680000000000L}); public static final BitSet FOLLOW_nonvoid_type_descriptor_in_instruction3635 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_instruction3660 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L}); public static final BitSet FOLLOW_OPEN_BRACE_in_instruction3662 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_register_range_in_instruction3664 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L}); public static final BitSet FOLLOW_CLOSE_BRACE_in_instruction3666 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3668 = new BitSet(new long[]{0x4000000000000000L}); public static final BitSet FOLLOW_VTABLE_OFFSET_in_instruction3670 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_instruction3682 = new BitSet(new long[]{0x0800000000000000L}); public static final BitSet FOLLOW_REGISTER_in_instruction3684 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L}); public static final BitSet FOLLOW_COMMA_in_instruction3686 = new BitSet(new long[]{0x043FF00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_fixed_literal_in_instruction3688 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_ARRAY_DATA_DIRECTIVE_in_instruction3712 = new BitSet(new long[]{0x0401F00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_integral_literal_in_instruction3721 = new BitSet(new long[]{0x043FF00000100000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_fixed_literal_in_instruction3724 = new BitSet(new long[]{0x043FF00000100000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_instruction3730 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_PACKED_SWITCH_DIRECTIVE_in_instruction3809 = new BitSet(new long[]{0x042BF00000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_fixed_32bit_literal_in_instruction3818 = new BitSet(new long[]{0x0000200000400000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_instruction3828 = new BitSet(new long[]{0x0000200000400000L,0x0040000000000001L}); public static final BitSet FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_instruction3837 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_instruction3954 = new BitSet(new long[]{0x042BF00001000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_fixed_32bit_literal_in_instruction3964 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L}); public static final BitSet FOLLOW_ARROW_in_instruction3966 = new BitSet(new long[]{0x0000200000000000L,0x0040000000000001L}); public static final BitSet FOLLOW_label_ref_or_offset_in_instruction3972 = new BitSet(new long[]{0x042BF00001000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000100000L}); public static final BitSet FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_instruction3981 = new BitSet(new long[]{0x0000000000000002L}); }