public final ANTLRv3TreeFilter.rewrite_template_arg_return rewrite_template_arg() throws RecognitionException {
        ANTLRv3TreeFilter.rewrite_template_arg_return retval = new ANTLRv3TreeFilter.rewrite_template_arg_return();
        retval.start = input.LT(1);

        try {
            // back-end/koopa/trees/antlr/filter/generator/ANTLRv3TreeFilter.g:486:2: ( ^( ARG ID ACTION ) )
            // back-end/koopa/trees/antlr/filter/generator/ANTLRv3TreeFilter.g:486:6: ^( ARG ID ACTION )
            {
            match(input,ARG,FOLLOW_ARG_in_rewrite_template_arg2463); 

            match(input, Token.DOWN, null); 
            match(input,ID,FOLLOW_ID_in_rewrite_template_arg2465); 
            match(input,ACTION,FOLLOW_ACTION_in_rewrite_template_arg2467); 

            match(input, Token.UP, null); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }