51
55
CodeWeaver _code_weaver;
53
57
CCSemVisitor _sem_visitor;
54
Token *_primary_start;
59
string _aspect_includes;
58
bool phase1 (Unit *unit, CTranslationUnit *&, PointCutContext *&, Plan &);
59
bool phase2 (Unit *unit, CTranslationUnit *, PointCutContext&, Plan &);
60
void aspect_priviledges (CTranslationUnit &tunit);
61
bool phase1 (Unit *unit, CTranslationUnit *&, ModelBuilder &);
62
bool phase2 (Unit *unit, CTranslationUnit *, ModelBuilder &);
63
void determine_aspect_includes (const IncludeGraph &ig);
64
string aspect_include_cluster (const char *ah_file,
65
const IncludeGraph &ig);
66
void determine_aspect_cluster (const Unit* ah_unit,
67
const IncludeGraph &ig, set<const Unit*> &cluster);
68
void prepare_dynamic_weaving (ModelBuilder &jpm);
69
void update_intros_in_repo (ModelBuilder &);
70
void aspect_priviledges (ModelBuilder &);
61
71
void cleanup (CTranslationUnit &tunit);
62
void orderings (CTranslationUnit &, Plan&, PointCutContext&, bool);
63
void introductions (CTranslationUnit &, PointCutContext &, Plan &);
72
void orderings (CTranslationUnit &, Plan&, ModelBuilder &, bool);
73
void introductions (CTranslationUnit &, ModelBuilder &);
64
74
void advice (CTranslationUnit &tunit);
65
75
void singleton_aspects (CTranslationUnit &);
66
void collect_ordering (CClassDatabase &db, ACAspectInfo *ai,
67
Array<CT_AdviceDecl*> &order_nodes);
68
void collect_advice (CClassDatabase &db, ACAspectInfo *ai,
69
Array<CT_AdviceDecl*> &advice_nodes);
70
void collect_intros (Plan &plan, CClassDatabase &db, AspectInfo *ai,
72
void join_points (CTranslationUnit &, PointCutContext &);
76
void join_points (CTranslationUnit &, ModelBuilder &, Plan &);
76
79
Transformer (VerboseMgr &vm, ErrorStream &e, CProject &p, Repository &r,
78
81
_vm (vm), _err (e), _project (p), _repo (r), _code_weaver (e, ldm),
79
82
_sem_visitor (e), _conf (c) {}
80
83
void work (Unit *unit, Token *primary_start, Token *primary_end);
84
const string &aspect_includes () const { return _aspect_includes; }
83
87
#endif // __Transformer_h__