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_WinAsm_ah__
8
typedef const char* Type;
9
enum JPType { CALL = 0x0004, EXECUTION = 0x0008, CONSTRUCTION = 0x0010, DESTRUCTION = 0x0020 };
11
void **_args; void *_result; void *_target; void *_that; void *_fptr;
12
void (*_wrapper)(Action &);
13
inline void trigger () { _wrapper (*this); }
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; }
21
template <class Aspect, int Index>
23
static int &instance () {
24
static int counter = 0;
27
CFlow () { instance ()++; }
28
~CFlow () { instance ()--; }
29
static bool active () { return instance () > 0; }
32
inline void * operator new (__SIZE_TYPE__, AC::AnyResultBuffer *p) { return p; }
33
inline void operator delete (void *, AC::AnyResultBuffer *) { } // for VC++
35
#endif // __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
37
#line 1 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
38
// This file is part of PUMA.
39
// Copyright (C) 1999-2003 The PUMA developer team.
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.
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.
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,
59
/********************************************************/
60
/* Win asm support aspect */
61
/********************************************************/
63
#include "Puma/WinCTree.h"
76
#line 77 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/WinAsm.ah"
78
class WinImportHandler;
85
class WinMemberExplSpec;
86
class WinTypeKeywords;
87
class PragmaOnceUnitState;
92
#line 38 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
94
#line 95 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/WinAsm.ah"
97
static WinAsm *aspectof () {
98
static WinAsm __instance;
101
static WinAsm *aspectOf () {
106
#line 38 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
108
#line 109 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/WinAsm.ah"
109
friend class ::WinIfExists;
110
friend class ::WinImportHandler;
111
friend class ::WinMacros;
112
friend class ::CMatchSyntax;
113
friend class ::ExtGnu;
114
friend class ::ExtAC;
115
friend class ::ExtACTree;
116
friend class ::WinDeclSpecs;
117
friend class ::WinMemberExplSpec;
118
friend class ::WinTypeKeywords;
119
friend class ::PragmaOnceUnitState;
120
friend class ::PragmaOnce;
121
friend class ::CCExprResolve;
122
friend class ::CExprResolve;
124
#line 38 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
126
/********************************************************/
127
/* Visual C++ asm statement */
128
/********************************************************/
130
// pointcut definitions
132
#line 44 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
135
#line 45 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
139
// extend the builder
141
#line 49 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
144
// add rules to the syntax
146
#line 52 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
149
#line 53 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
152
// let first parse asm_block() and then stmt() if failed
154
#line 3 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
156
public: template<class JoinPoint> void __a0_after
157
#line 56 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
159
#line 56 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
161
#line 56 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
163
#line 164 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/WinAsm.ah"
165
JoinPoint *&thisJoinPoint = tjp;
167
#line 56 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
169
#line 170 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/WinAsm.ah"
171
typedef typename JoinPoint::That __JP_That;
172
typedef typename JoinPoint::Target __JP_Target;
173
typedef typename JoinPoint::Result __JP_Result;
175
#line 56 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
177
CTree *&result = *(CTree**)thisJoinPoint->result ();
178
if (!result && tjp->that ()->asm_block ())
179
result = thisJoinPoint->that ()->builder().stmt ();
185
#line 186 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/WinAsm.ah"
188
template <class JoinPoint>
189
inline void invoke_WinAsm_WinAsm_a0_after (JoinPoint *tjp) {
190
::WinAsm::aspectof()->__a0_after (tjp);
194
#line 64 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
198
#line 68 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
202
#line 125 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
206
#line 130 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/WinAsm.ah"
210
#endif /* __WinAsm__ */
212
#line 213 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/WinAsm.ah"
214
#ifdef __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__
215
/*** begin of aspect includes ***/
216
#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__)
217
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinIfExists_ah__
218
#include "WinIfExists.ah"
220
#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__)
221
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinImportHandler_ah__
222
#include "WinImportHandler.ah"
224
#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__)
225
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMacros_ah__
226
#include "WinMacros.ah"
228
#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__)
229
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
230
#include "CMatchSyntax.ah"
232
#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__)
233
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtGnu_ah__
236
#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__)
237
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtAC_ah__
240
#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__)
241
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_ExtACTree_ah__
242
#include "ExtACTree.ah"
244
#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__)
245
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_TraceSyntax_ah__
246
#include "TraceSyntax.ah"
248
#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__)
249
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__
252
#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__)
253
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
254
#include "WinDeclSpecs.ah"
256
#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__)
257
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
258
#include "WinMemberExplSpec.ah"
260
#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__)
261
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
262
#include "WinTypeKeywords.ah"
264
#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__)
265
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
266
#include "PragmaOnceUnitState.ah"
268
#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__)
269
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_PragmaOnce_ah__
270
#include "PragmaOnce.ah"
272
#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__)
273
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CCExprResolve_ah__
274
#include "CCExprResolve.ah"
276
#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__)
277
#define __ac_have__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_CExprResolve_ah__
278
#include "CExprResolve.ah"
280
/*** end of aspect includes ***/
281
#undef __ac_FIRST__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1__
282
#undef __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__
283
#endif // __ac_FIRST_FILE__home_inf4_spinczyk_ac45woven451_0pre2_Puma_gen45release_step1_aspects_WinAsm_ah__