1
#ifndef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
2
#define __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
3
#define __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
9
typedef const char* Type;
10
enum JPType { CALL = 0x0004, EXECUTION = 0x0008, CONSTRUCTION = 0x0010, DESTRUCTION = 0x0020 };
12
void **_args; void *_result; void *_target; void *_that; void *_fptr;
13
void (*_wrapper)(Action &);
14
inline void trigger () { _wrapper (*this); }
16
struct AnyResultBuffer {};
17
template <typename T> struct ResultBuffer : public AnyResultBuffer {
18
char _data[sizeof (T)];
19
~ResultBuffer () { ((T*)_data)->T::~T(); }
20
operator T& () const { return *(T*)_data; }
22
template <typename T, typename N> struct TL {
23
typedef T type; typedef N next; enum { ARGS = next::ARGS + 1 };
25
struct TLE { enum { ARGS = 0 }; };
26
template <typename T> struct Referred { typedef T type; };
27
template <typename T> struct Referred<T &> { typedef T type; };
28
template <typename TL, int I> struct Arg {
29
typedef typename Arg<typename TL::next, I - 1>::Type Type;
30
typedef typename Referred<Type>::type ReferredType;
32
template <typename TL> struct Arg<TL, 0> {
33
typedef typename TL::type Type;
34
typedef typename Referred<Type>::type ReferredType;
36
template <class Aspect, int Index>
38
static int &instance () {
39
static int counter = 0;
42
CFlow () { instance ()++; }
43
~CFlow () { instance ()--; }
44
static bool active () { return instance () > 0; }
47
inline void * operator new (__SIZE_TYPE__, AC::AnyResultBuffer *p) { return p; }
48
inline void operator delete (void *, AC::AnyResultBuffer *) { } // for VC++
51
#endif // __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
53
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
54
// This file is part of PUMA.
55
// Copyright (C) 1999-2003 The PUMA developer team.
57
// This program is free software; you can redistribute it and/or
58
// modify it under the terms of the GNU General Public License as
59
// published by the Free Software Foundation; either version 2 of
60
// the License, or (at your option) any later version.
62
// This program is distributed in the hope that it will be useful,
63
// but WITHOUT ANY WARRANTY; without even the implied warranty of
64
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
65
// GNU General Public License for more details.
67
// You should have received a copy of the GNU General Public
68
// License along with this program; if not, write to the Free
69
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
75
/********************************************************/
76
/* Win friend declaration syntax without class key. */
77
/********************************************************/
85
#include "Puma/CTokens.h"
88
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/aspects/WinFriend.ah"
92
class WinImportHandler;
96
class WinMemberExplSpec;
97
class WinTypeKeywords;
99
class ExtACBuilderCoupling;
100
class ExtACSyntaxCoupling;
104
class PragmaOnceUnitState;
108
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
110
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/aspects/WinFriend.ah"
113
static WinFriend *aspectof () {
114
static WinFriend __instance;
117
static WinFriend *aspectOf () {
122
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
124
#line 125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/aspects/WinFriend.ah"
125
friend class ::CCExprResolve;
126
friend class ::CExprResolve;
127
friend class ::WinIfExists;
128
friend class ::WinImportHandler;
129
friend class ::WinMacros;
130
friend class ::WinAsm;
131
friend class ::WinDeclSpecs;
132
friend class ::WinMemberExplSpec;
133
friend class ::WinTypeKeywords;
134
friend class ::ExtAC;
135
friend class ::ExtACBuilderCoupling;
136
friend class ::ExtACSyntaxCoupling;
137
friend class ::ExtACTree;
138
friend class ::ExtACKeywords;
139
friend class ::ExtGnu;
140
friend class ::PragmaOnceUnitState;
141
friend class ::PragmaOnce;
142
friend class ::CMatchSyntax;
144
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
146
/********************************************************/
147
/* Win friend declaration syntax */
148
/********************************************************/
150
// parse the win friend declaration syntax
152
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
154
public: template<class JoinPoint> void __a0_around
155
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
157
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
159
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
161
#line 162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/aspects/WinFriend.ah"
163
typedef typename JoinPoint::That __JP_That;
164
typedef typename JoinPoint::Target __JP_Target;
165
typedef typename JoinPoint::Result __JP_Result;
167
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
170
Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
171
// 3: FRIEND class_name ;
173
tjp->that ()->parse (Puma::TOK_FRIEND) &&
174
tjp->that ()->class_name () &&
175
tjp->that ()->parse (Puma::TOK_SEMI_COLON))
176
result = tjp->that ()->semantic ().member_decl1 ();
178
#line 179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/aspects/WinFriend.ah"
182
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
185
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/aspects/WinFriend.ah"
188
template <class JoinPoint>
189
__attribute((always_inline)) inline void invoke_WinFriend_WinFriend_a0_around (JoinPoint *tjp) {
190
::WinFriend::aspectof()->__a0_around (tjp);
194
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinFriend.ah"
197
#endif /* __WinFriend__ */
199
#line 200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/aspects/WinFriend.ah"
201
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
202
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
203
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
204
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
205
#include "CCExprResolveCC.ah"
207
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
208
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
209
#include "ExtACTree.ah"
211
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
212
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
216
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
217
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
218
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
219
#include "CCExprResolveH.ah"
222
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
223
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
224
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
225
#include "CExprResolveCC.ah"
227
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
228
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
229
#include "ExtACTree.ah"
231
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
232
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
236
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
237
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
238
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
239
#include "CExprResolveH.ah"
242
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
243
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
244
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
245
#include "WinIfExists.ah"
248
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
249
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
250
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
251
#include "WinImportHandler.ah"
254
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
255
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
256
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
257
#include "WinMacros.ah"
259
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
260
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
261
#include "PragmaOnceUnitState.ah"
264
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
265
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
266
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
269
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
270
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
271
#include "ExtACTree.ah"
274
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
275
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
276
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
277
#include "WinDeclSpecs.ah"
280
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
281
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
282
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
283
#include "WinMemberExplSpec.ah"
286
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
287
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
288
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
289
#include "WinTypeKeywords.ah"
292
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
293
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
294
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
295
#include "WinFriend.ah"
298
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
299
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
300
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
303
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
304
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
305
#include "ExtACTree.ah"
307
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
308
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
309
#include "ExtACKeywords.ah"
311
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
312
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
315
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
316
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
317
#include "PragmaOnceUnitState.ah"
319
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
320
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
321
#include "CMatchSyntax.ah"
324
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
325
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
326
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
327
#include "ExtACBuilderH.ah"
330
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
331
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
332
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
333
#include "ExtACBuilderCC.ah"
335
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
336
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
337
#include "ExtACTree.ah"
340
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
341
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
342
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
343
#include "ExtACSyntaxH.ah"
346
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
347
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
348
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
349
#include "ExtACSyntaxCC.ah"
352
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
353
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
354
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
355
#include "ExtACTree.ah"
358
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
359
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
360
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
361
#include "ExtACKeywords.ah"
363
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
364
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
365
#include "PragmaOnceUnitState.ah"
368
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
369
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
370
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
371
#include "ExtACTree.ah"
373
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
374
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
378
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
379
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
380
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
381
#include "ExtACTree.ah"
383
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
384
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
385
#include "ExtGnuCSemDeclSpecs.ah"
388
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
389
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
390
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
391
#include "PragmaOnceUnitState.ah"
394
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
395
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
396
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
397
#include "PragmaOnceUnitState.ah"
399
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
400
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
401
#include "PragmaOnce.ah"
404
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
405
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
406
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
407
#include "TraceSyntax.ah"
410
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
411
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
412
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
413
#include "CMatchSyntax.ah"
416
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
417
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
418
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__