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__
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/CExprResolve.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,
56
#ifndef __CExprResolve_ah__
57
#define __CExprResolve_ah__
59
// this should be included as soon as ac++ can better deal with include cycles
60
// #include "Puma/CSemExpr.h"
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.
73
#line 74 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/CExprResolve.ah"
75
class WinImportHandler;
83
class WinMemberExplSpec;
84
class WinTypeKeywords;
85
class PragmaOnceUnitState;
89
#line 35 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
91
#line 92 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/CExprResolve.ah"
94
static CExprResolve *aspectof () {
95
static CExprResolve __instance;
98
static CExprResolve *aspectOf () {
103
#line 35 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
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;
121
#line 35 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
126
#line 39 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
129
#line 42 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
132
#line 133 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/CExprResolve.ah"
137
#line 43 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
141
#line 48 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
144
// the necessary #include "Puma/CSemExpr.h" will be inserted manually (for now)
146
#line 56 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step1/aspects/CExprResolve.ah"
149
#endif /* __CExprResolve_ah__ */
151
#line 152 "/home/inf4/spinczyk/ac-woven-1.0pre2/Puma/gen-release/step2/aspects/CExprResolve.ah"
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"
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"
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"
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"
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__
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__
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"
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"
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__
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"
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"
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"
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"
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"
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"
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"
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__