~ubuntu-branches/ubuntu/utopic/aspectc++/utopic

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/inc/Puma/CExprResolve.ah

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2006-04-07 11:56:35 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20060407115635-e8wfgmetasrf2p27
Tags: 0.99+1.0pre3-1
* new upstream release
* Apply patch from Martin Michlmayr for g++-4.1 (Closes: #357901)
* further (simple) patches in Puma/ and AspectC++ for g++-4.1
* note that Puma needs to be rewoven so that it can be compiled
  with g++-4.1. This will be done we switch the default compiler
  version.
* Patch JoinPointRepo.cc so that it doesn't loop endlessly anymore.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#ifndef __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
2
 
#define __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
3
 
#define __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__
4
 
 
5
 
#ifndef __ac_h_
6
 
#define __ac_h_
7
 
namespace AC {
8
 
  typedef const char* Type;
9
 
  enum JPType { CALL = 0x0004, EXECUTION = 0x0008, CONSTRUCTION = 0x0010, DESTRUCTION = 0x0020 };
10
 
  struct Action {
11
 
    void **_args; void *_result; void *_target; void *_that; void *_fptr;
12
 
    void (*_wrapper)(Action &);
13
 
    inline void trigger () { _wrapper (*this); }
14
 
  };
15
 
  struct AnyResultBuffer {};
16
 
  template <typename T> struct ResultBuffer : public AnyResultBuffer {
17
 
    char _data[sizeof (T)];
18
 
    ~ResultBuffer () { ((T*)_data)->T::~T(); }
19
 
    operator T& () const { return *(T*)_data; }
20
 
  };
21
 
  template <class Aspect, int Index>
22
 
  struct CFlow {
23
 
    static int &instance () {
24
 
      static int counter = 0;
25
 
      return counter;
26
 
    }
27
 
    CFlow () { instance ()++; }
28
 
    ~CFlow () { instance ()--; }
29
 
    static bool active () { return instance () > 0; }
30
 
  };
31
 
}
32
 
inline void * operator new (__SIZE_TYPE__, AC::AnyResultBuffer *p) { return p; }
33
 
inline void operator delete (void *, AC::AnyResultBuffer *) { } // for VC++
34
 
#endif // __ac_h_
35
 
#endif // __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
36
 
 
37
 
#line 1 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
38
 
// This file is part of PUMA.
39
 
// Copyright (C) 1999-2003  The PUMA developer team.
40
 
//                                                                
41
 
// This program is free software;  you can redistribute it and/or 
42
 
// modify it under the terms of the GNU General Public License as 
43
 
// published by the Free Software Foundation; either version 2 of 
44
 
// the License, or (at your option) any later version.            
45
 
//                                                                
46
 
// This program is distributed in the hope that it will be useful,
47
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
48
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
49
 
// GNU General Public License for more details.                   
50
 
//                                                                
51
 
// You should have received a copy of the GNU General Public      
52
 
// License along with this program; if not, write to the Free     
53
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
54
 
// MA  02111-1307  USA                                            
55
 
 
56
 
#ifndef __CExprResolve_ah__
57
 
#define __CExprResolve_ah__
58
 
 
59
 
// this should be included as soon as ac++ can better deal with include cycles
60
 
// #include "Puma/CSemExpr.h" 
61
 
 
62
 
// This aspect inserts resolve member functions into all syntax tree classes
63
 
// that represent expressions. As the function is virtual, an efficient
64
 
// run-time switch over the node type is implemented.
65
 
 
66
 
namespace Puma {
67
 
  class CSemExpr;
68
 
}
69
 
 
70
 
using namespace Puma;
71
 
 
72
 
 
73
 
#line 74 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/CExprResolve.ah"
74
 
class WinIfExists;
75
 
class WinImportHandler;
76
 
class WinMacros;
77
 
class CMatchSyntax;
78
 
class ExtGnu;
79
 
class ExtAC;
80
 
class ExtACTree;
81
 
class WinAsm;
82
 
class WinDeclSpecs;
83
 
class WinMemberExplSpec;
84
 
class WinTypeKeywords;
85
 
class PragmaOnceUnitState;
86
 
class PragmaOnce;
87
 
class CCExprResolve;
88
 
 
89
 
#line 35 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
90
 
class CExprResolve {
91
 
#line 92 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/CExprResolve.ah"
92
 
 
93
 
public:
94
 
  static CExprResolve *aspectof () {
95
 
    static CExprResolve __instance;
96
 
    return &__instance;
97
 
  }
98
 
  static CExprResolve *aspectOf () {
99
 
    return aspectof ();
100
 
  }
101
 
private:
102
 
 
103
 
#line 35 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
104
 
 
105
 
#line 106 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/CExprResolve.ah"
106
 
  friend class ::WinIfExists;
107
 
  friend class ::WinImportHandler;
108
 
  friend class ::WinMacros;
109
 
  friend class ::CMatchSyntax;
110
 
  friend class ::ExtGnu;
111
 
  friend class ::ExtAC;
112
 
  friend class ::ExtACTree;
113
 
  friend class ::WinAsm;
114
 
  friend class ::WinDeclSpecs;
115
 
  friend class ::WinMemberExplSpec;
116
 
  friend class ::WinTypeKeywords;
117
 
  friend class ::PragmaOnceUnitState;
118
 
  friend class ::PragmaOnce;
119
 
  friend class ::CCExprResolve;
120
 
 
121
 
#line 35 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
122
 
 
123
 
 
124
 
public:
125
 
  
126
 
#line 39 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
127
 
 
128
 
  
129
 
#line 42 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
130
 
 
131
 
};
132
 
#line 133 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/CExprResolve.ah"
133
 
 
134
 
namespace AC {
135
 
136
 
 
137
 
#line 43 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
138
 
 
139
 
 
140
 
 
141
 
#line 48 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
142
 
 
143
 
 
144
 
// the necessary #include "Puma/CSemExpr.h" will be inserted manually (for now)    
145
 
 
146
 
#line 56 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
147
 
 
148
 
 
149
 
#endif /* __CExprResolve_ah__ */
150
 
 
151
 
#line 152 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/CExprResolve.ah"
152
 
 
153
 
#ifdef __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__
154
 
/*** begin of aspect includes ***/
155
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinIfExists_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinIfExists_ah__)
156
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinIfExists_ah__
157
 
#include "WinIfExists.ah"
158
 
#endif
159
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinImportHandler_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinImportHandler_ah__)
160
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinImportHandler_ah__
161
 
#include "WinImportHandler.ah"
162
 
#endif
163
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMacros_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMacros_ah__)
164
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMacros_ah__
165
 
#include "WinMacros.ah"
166
 
#endif
167
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CMatchSyntax_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CMatchSyntax_ah__)
168
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
169
 
#include "CMatchSyntax.ah"
170
 
#endif
171
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__)
172
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__
173
 
#include "ExtGnu.ah"
174
 
#endif
175
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__)
176
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__
177
 
#include "ExtAC.ah"
178
 
#endif
179
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtACTree_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtACTree_ah__)
180
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtACTree_ah__
181
 
#include "ExtACTree.ah"
182
 
#endif
183
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_TraceSyntax_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_TraceSyntax_ah__)
184
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_TraceSyntax_ah__
185
 
#include "TraceSyntax.ah"
186
 
#endif
187
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__)
188
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__
189
 
#include "WinAsm.ah"
190
 
#endif
191
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__)
192
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
193
 
#include "WinDeclSpecs.ah"
194
 
#endif
195
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__)
196
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
197
 
#include "WinMemberExplSpec.ah"
198
 
#endif
199
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__)
200
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
201
 
#include "WinTypeKeywords.ah"
202
 
#endif
203
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__)
204
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
205
 
#include "PragmaOnceUnitState.ah"
206
 
#endif
207
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnce_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnce_ah__)
208
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnce_ah__
209
 
#include "PragmaOnce.ah"
210
 
#endif
211
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CCExprResolve_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CCExprResolve_ah__)
212
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CCExprResolve_ah__
213
 
#include "CCExprResolve.ah"
214
 
#endif
215
 
#if !defined(__ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__) && defined(__ac_need__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__)
216
 
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__
217
 
#include "CExprResolve.ah"
218
 
#endif
219
 
/*** end of aspect includes ***/
220
 
#undef __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
221
 
#undef __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__
222
 
#endif // __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__