65
65
void make_check_function (bool in_checked,
66
66
CRecord *in, CRecord *check_for);
67
67
void provide_typename (CTree *node);
68
void make_tjp_typename (ostream &out, JPL_Code *loc, int depth);
68
69
void make_proceed_code (ostream &out, JoinPointLoc *loc, bool action,
70
71
void make_advice_call(ostream &out, JoinPointLoc *loc, AdviceInfo *ad,
74
75
void make_action_wrapper(ostream &impl, JoinPointLoc *jpl,
76
77
void make_proceed_func(ostream &impl, JoinPointLoc *loc, JPAdvice *jpa);
78
string wrapper_function_signature (JPL_Code *loc, CFunctionInfo *func,
77
80
bool check_special_member_function (CFunctionInfo *func);
78
81
void gen_special_member_function (JoinPointLoc *loc, JPP_Code &plan);
79
82
void wrap_function (JPL_Code *loc, JPP_Code &plan);
91
94
void insert_namespace_ac_before (Token *inspos);
92
95
void to_class (ACAspectInfo *ai);
93
void invocation_functions (ACAspectInfo *ai, Token *first,
96
void invocation_functions (ACAspectInfo *ai,
94
97
const string &decls, const string &defs);
95
98
void declare_friends (CClassInfo *cls, list<CClassInfo*> &friends);
96
99
void open_namespace (ostream &out, CClassInfo *obj);
99
102
void declare_function (CFunctionInfo *advice_func, CTree *advice_decl);
100
103
void make_tjp_struct(ostream &out, JoinPointLoc *loc, JPAdvice *jpa);
101
104
void make_tjp_common_init(ostream &code, JoinPointLoc *loc, JPAdvice *jpa);
102
void introduce (JPL_Class *loc, CTree *decl, CProtection::Type prot,
104
void baseclass (JPL_Class &loc, JPP_Class &plan);
105
/* void inherited (JPL_Class *loc, IntroductionInfo *intro); */
106
105
void singleton (ACAspectInfo *ai);
107
void make_result_type (ostream &out, CTypeInfo *type, bool reference);
108
void make_result_declaration(ostream &out, CTypeInfo *type);
109
void make_result_assignment(ostream &out, CTypeInfo *type);
110
void make_action_result_assignment(ostream &out, CTypeInfo *type);
111
void make_result_return(ostream &out, CTypeInfo *type);
112
106
void exec_join_point (JPL_Method *loc, JPP_Code &plan);
113
107
void call_join_point (JPL_MethodCall *loc, JPP_Code &plan);
114
108
void cons_join_point (JPL_Construction *loc, JPP_Code &plan);
115
109
void dest_join_point (JPL_Destruction *loc, JPP_Code &plan);
116
void add_intro_include (JPL_Class *jpl, IntroductionInfo *ii);
117
void add_aspect_include (JoinPointLoc *jpl, AspectInfo *ai,
118
ACAspectInfo *acai, AspectRef::Kind kind);
119
void aspect_includes (CProject &project, Token *first);
110
void add_aspect_include (JoinPointLoc *jpl, AspectInfo &aspect_info,
111
AspectRef::Kind kind);
112
void aspect_includes (CProject &project);
113
AspectIncludes &aspect_includes () { return _aspect_includes; }
120
114
void slice_includes (CProject &project, Token *first);
121
115
void type_check (CRecord *in, const string &name, bool result);