~ubuntu-branches/ubuntu/maverick/aspectc++/maverick

« back to all changes in this revision

Viewing changes to AspectC++/PointCutContext.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:
26
26
#include "Puma/Stack.h"
27
27
 
28
28
#include "Binding.h"
29
 
#include "JoinPointLocList.h"
 
29
#include "JoinPointModel.h"
 
30
 
30
31
using namespace Puma;
31
32
 
32
33
namespace Puma {
44
45
typedef Array<const CArgumentInfo*> ArgSet;
45
46
 
46
47
class PointCutContext {
47
 
  JoinPointLocList _world;
 
48
  JoinPointModel &_jpm;
48
49
  CFunctionInfo *_func;
49
 
  ACAspectInfo *_aspect;
 
50
  JPL_Aspect *_aspect;
50
51
  int _per_aspect_cflows;
51
52
 
52
53
  // new pointcut evaluation data members
58
59
  bool _pseudo_true;
59
60
  set<PointCutExpr*> _cflow_exprs;
60
61
 
61
 
  void setup (CTranslationUnit& tunit);
62
 
  void scopes (CTranslationUnit& tunit);
63
62
  CFunctionInfo *lookup_pointcut(ACAspectInfo *ai, CFunctionInfo *fi);
64
63
 
65
64
public:
66
65
 
67
 
  PointCutContext (CTranslationUnit& tunit) :
68
 
    _func (0), _aspect (0), _per_aspect_cflows (0),
 
66
  PointCutContext (JoinPointModel &jpm) :
 
67
    _jpm (jpm), _func (0), _aspect (0), _per_aspect_cflows (0),
69
68
    _in_arg (-1), _in_result (false), _in_that (false), _in_target (false),
70
69
    _pseudo_true (false) {
71
 
    setup (tunit);
72
70
  }
73
71
 
74
 
  JoinPointLocList &scopes () { return _world; }
75
 
  JoinPointLocList &world () { return _world; }
 
72
  JoinPointModel &jpm () { return _jpm; }
 
73
 
76
74
  CFunctionInfo *func (CFunctionInfo *new_func) {
77
75
    CFunctionInfo *result = _func;
78
76
    _func = new_func;
79
77
    return result;
80
78
  }
81
79
  CFunctionInfo *func () const { return _func; }
82
 
  void aspect_info (ACAspectInfo *ai) { _aspect = ai; _per_aspect_cflows = 0; }
83
 
  ACAspectInfo *aspect_info () const { return _aspect; }
 
80
  void concrete_aspect (JPL_Aspect &ai) { _aspect = &ai; _per_aspect_cflows = 0; }
 
81
//  ACAspectInfo *aspect_info () const { return _aspect; }
84
82
  CFunctionInfo *lookup_pointcut (CFunctionInfo *func, ErrorStream &err,
85
83
                                  CTree *node);
86
84
  bool in_project (CObjectInfo *obj);