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

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/aspects/ExtACSyntaxH.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__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
 
2
#define __ac_FIRST__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
 
3
#define __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_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__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
 
36
// This file is part of PUMA.
 
37
// Copyright (C) 1999-2003  The PUMA developer team.
 
38
//                                                                
 
39
// This program is free software;  you can redistribute it and/or 
 
40
// modify it under the terms of the GNU General Public License as 
 
41
// published by the Free Software Foundation; either version 2 of 
 
42
// the License, or (at your option) any later version.            
 
43
//                                                                
 
44
// This program is distributed in the hope that it will be useful,
 
45
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
46
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
47
// GNU General Public License for more details.                   
 
48
//                                                                
 
49
// You should have received a copy of the GNU General Public      
 
50
// License along with this program; if not, write to the Free     
 
51
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
52
// MA  02111-1307  USA                                            
 
53
 
 
54
#ifndef __ext_ac_syntax_h_ah__
 
55
#define __ext_ac_syntax_h_ah__
 
56
 
 
57
// *************************
 
58
// C and CC-Syntax extension
 
59
// *************************
 
60
 
 
61
// new C and CC Syntax member functions
 
62
 
 
63
 
 
64
 
 
65
 
 
66
// *************************
 
67
// C and CC-Syntax extension
 
68
// *************************
 
69
 
 
70
class WinIfExists;
 
71
class WinImportHandler;
 
72
class WinMacros;
 
73
class CMatchSyntax;
 
74
class ExtGnu;
 
75
class ExtAC;
 
76
class ExtACBuilderCoupling;
 
77
class ExtACTree;
 
78
class ExtACKeywords;
 
79
class WinAsm;
 
80
class WinDeclSpecs;
 
81
class WinMemberExplSpec;
 
82
class WinTypeKeywords;
 
83
class PragmaOnceUnitState;
 
84
class PragmaOnce;
 
85
class CCExprResolve;
 
86
class CExprResolve;
 
87
class ExtACSyntaxCoupling {
 
88
public:
 
89
  static ExtACSyntaxCoupling *aspectof () {
 
90
    static ExtACSyntaxCoupling __instance;
 
91
    return &__instance;
 
92
  }
 
93
  static ExtACSyntaxCoupling *aspectOf () {
 
94
    return aspectof ();
 
95
  }
 
96
private:
 
97
  friend class ::WinIfExists;
 
98
  friend class ::WinImportHandler;
 
99
  friend class ::WinMacros;
 
100
  friend class ::CMatchSyntax;
 
101
  friend class ::ExtGnu;
 
102
  friend class ::ExtAC;
 
103
  friend class ::ExtACBuilderCoupling;
 
104
  friend class ::ExtACTree;
 
105
  friend class ::ExtACKeywords;
 
106
  friend class ::WinAsm;
 
107
  friend class ::WinDeclSpecs;
 
108
  friend class ::WinMemberExplSpec;
 
109
  friend class ::WinTypeKeywords;
 
110
  friend class ::PragmaOnceUnitState;
 
111
  friend class ::PragmaOnce;
 
112
  friend class ::CCExprResolve;
 
113
  friend class ::CExprResolve;
 
114
 
 
115
 
 
116
  // relevant pointcuts
 
117
  
 
118
  
 
119
 
 
120
  // structural extensions
 
121
  
 
122
  
 
123
  
 
124
  // behavioral extensions
 
125
  
 
126
public: template<class JoinPoint> void __a0_after (JoinPoint *tjp) {
 
127
  typedef typename JoinPoint::That __JP_That;
 
128
  typedef typename JoinPoint::Target __JP_Target;
 
129
  typedef typename JoinPoint::Result __JP_Result;
 
130
 
 
131
    tjp->that ()->_class_key_1.set (TOK_ASPECT);
 
132
  }
 
133
private:
 
134
 
 
135
 
 
136
  
 
137
public: template<class JoinPoint> void __a1_around (JoinPoint *tjp) {
 
138
  typedef typename JoinPoint::That __JP_That;
 
139
  typedef typename JoinPoint::Target __JP_Target;
 
140
  typedef typename JoinPoint::Result __JP_Result;
 
141
 
 
142
    // 1: pointcut_decl
 
143
    // 1: advice_decl
 
144
    // 1: class_slice_decl
 
145
    if (tjp->that ()->parse (&__JP_That::pointcut_decl) ||
 
146
        tjp->that ()->parse (&__JP_That::advice_decl) ||
 
147
        tjp->that ()->parse (&__JP_That::class_slice_decl) ||
 
148
        tjp->that ()->parse (&__JP_That::class_slice_member_decl))
 
149
      *tjp->result () = tjp->that ()->builder ().block_decl ();
 
150
    else 
 
151
      tjp->proceed ();
 
152
  }
 
153
private:
 
154
 
 
155
 
 
156
  
 
157
public: template<class JoinPoint> void __a2_around (JoinPoint *tjp) {
 
158
  typedef typename JoinPoint::That __JP_That;
 
159
  typedef typename JoinPoint::Target __JP_Target;
 
160
  typedef typename JoinPoint::Result __JP_Result;
 
161
 
 
162
    // 1: pointcut_member_decl
 
163
    // 1: advice_member_decl
 
164
    if (tjp->that ()->parse (&__JP_That::pointcut_member_decl) ||
 
165
        tjp->that ()->parse (&__JP_That::advice_member_decl) ||
 
166
        tjp->that ()->parse (&__JP_That::class_slice_decl)) 
 
167
      *tjp->result () = tjp->that ()->builder ().member_decl ();
 
168
    else 
 
169
      tjp->proceed ();
 
170
  }
 
171
private:
 
172
 
 
173
};
 
174
namespace AC {
 
175
  template <class JoinPoint>
 
176
  inline void invoke_ExtACSyntaxCoupling_ExtACSyntaxCoupling_a0_after (JoinPoint *tjp) {
 
177
    ::ExtACSyntaxCoupling::aspectof()->__a0_after (tjp);
 
178
  }
 
179
  template <class JoinPoint>
 
180
  inline void invoke_ExtACSyntaxCoupling_ExtACSyntaxCoupling_a1_around (JoinPoint *tjp) {
 
181
    ::ExtACSyntaxCoupling::aspectof()->__a1_around (tjp);
 
182
  }
 
183
  template <class JoinPoint>
 
184
  inline void invoke_ExtACSyntaxCoupling_ExtACSyntaxCoupling_a2_around (JoinPoint *tjp) {
 
185
    ::ExtACSyntaxCoupling::aspectof()->__a2_around (tjp);
 
186
  }
 
187
 
188
 
 
189
 
 
190
#endif /* __ext_ac_syntax_h_ah__ */
 
191
 
 
192
#ifdef __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
193
/*** begin of aspect includes ***/
 
194
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__)
 
195
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
196
#include "WinIfExists.ah"
 
197
#endif
 
198
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__)
 
199
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
200
#include "WinImportHandler.ah"
 
201
#endif
 
202
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__)
 
203
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMacros_ah__
 
204
#include "WinMacros.ah"
 
205
#endif
 
206
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__)
 
207
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
208
#include "CMatchSyntax.ah"
 
209
#endif
 
210
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__)
 
211
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
212
#include "ExtGnu.ah"
 
213
#endif
 
214
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__)
 
215
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtAC_ah__
 
216
#include "ExtAC.ah"
 
217
#endif
 
218
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__)
 
219
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
220
#include "ExtACBuilderH.ah"
 
221
#endif
 
222
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__)
 
223
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
224
#include "ExtACBuilderCC.ah"
 
225
#endif
 
226
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__)
 
227
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
228
#include "ExtACSyntaxH.ah"
 
229
#endif
 
230
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__)
 
231
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
232
#include "ExtACSyntaxCC.ah"
 
233
#endif
 
234
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__)
 
235
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
236
#include "ExtACTree.ah"
 
237
#endif
 
238
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__)
 
239
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
240
#include "ExtACKeywords.ah"
 
241
#endif
 
242
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__)
 
243
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
244
#include "TraceSyntax.ah"
 
245
#endif
 
246
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__)
 
247
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinAsm_ah__
 
248
#include "WinAsm.ah"
 
249
#endif
 
250
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__)
 
251
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
252
#include "WinDeclSpecs.ah"
 
253
#endif
 
254
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__)
 
255
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
256
#include "WinMemberExplSpec.ah"
 
257
#endif
 
258
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__)
 
259
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
260
#include "WinTypeKeywords.ah"
 
261
#endif
 
262
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__)
 
263
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
264
#include "PragmaOnceUnitState.ah"
 
265
#endif
 
266
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__)
 
267
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
268
#include "PragmaOnce.ah"
 
269
#endif
 
270
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__)
 
271
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
272
#include "CCExprResolveH.ah"
 
273
#endif
 
274
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__)
 
275
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
276
#include "CCExprResolveCC.ah"
 
277
#endif
 
278
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__)
 
279
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
280
#include "CExprResolveH.ah"
 
281
#endif
 
282
#if !defined(__ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__) && defined(__ac_need__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__)
 
283
#define __ac_have__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
284
#include "CExprResolveCC.ah"
 
285
#endif
 
286
/*** end of aspect includes ***/
 
287
#undef __ac_FIRST__tmp_AOP_LIN_AOP_Puma_gen45release_step1__
 
288
#undef __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
289
#endif // __ac_FIRST_FILE__tmp_AOP_LIN_AOP_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__