~ubuntu-branches/ubuntu/quantal/aspectc++/quantal

« back to all changes in this revision

Viewing changes to AspectC++/Transformer.h

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-04-10 17:40:52 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20080410174052-xdnsm7oi8hauyyf1
Tags: 1.0pre4~svn.20080409+dfsg-3
Fix another missing include, this time in Ag++/StdSystem.cc

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
#include "Puma/CCSemVisitor.h"
26
26
using namespace Puma;
27
27
 
 
28
#include <list>
 
29
using std::list;
 
30
 
28
31
namespace Puma {
29
32
  class VerboseMgr;
30
33
  class ErrorStream;
39
42
class PointCut;
40
43
class Repository;
41
44
class Plan;
42
 
class PointCutContext;
 
45
class ModelBuilder;
43
46
class ACConfig;
 
47
class IncludeGraph;
44
48
 
45
49
class Transformer
46
50
 {
51
55
      CodeWeaver _code_weaver;
52
56
      CCParser _parser;
53
57
      CCSemVisitor _sem_visitor;
54
 
      Token *_primary_start;
55
 
      Token *_primary_end;
56
58
      ACConfig &_conf;
 
59
      string _aspect_includes;
57
60
      
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,
71
 
         ACAspectInfo *acai);
72
 
      void join_points (CTranslationUnit &, PointCutContext &);
73
 
 
 
76
      void join_points (CTranslationUnit &, ModelBuilder &, Plan &);
74
77
   public:
75
78
 
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; }
81
85
 };
82
86
 
83
87
#endif // __Transformer_h__